Commit 3595ab1

mo khan <mo@mokhan.ca>
2015-03-14 18:17:29
add spec to view items from dashboard.
1 parent 0ba2bbe
Changed files (4)
spec/features/items_spec.rb
@@ -0,0 +1,18 @@
+require "rails_helper"
+
+feature "items", type: :feature do
+  describe "/items" do
+    subject { ItemsPage.new }
+    let(:user) { create(:user) }
+    let!(:item) { create(:item, user: user) }
+
+    before :each do
+      subject.login_with(user.username, 'password')
+      subject.visit_page
+    end
+
+    it "loads a list of items" do
+      expect(page).to have_content(item.name)
+    end
+  end
+end
spec/support/pages/items_page.rb
@@ -0,0 +1,7 @@
+require_relative "../page_model.rb"
+
+class ItemsPage < PageModel
+  def initialize
+    super dashboard_path
+  end
+end
spec/support/pages/login_page.rb
@@ -1,11 +1,10 @@
 require_relative "../page_model.rb"
 
 class LoginPage < PageModel
-  
   def initialize
     super new_session_path
   end
-  
+
   def login_with(username, password)
     within("#new_user") do
       fill_in I18n.translate("sessions.new.username"), :with => username
@@ -13,5 +12,4 @@ class LoginPage < PageModel
       click_button I18n.translate("sessions.new.login_button")
     end
   end
-  
-end
\ No newline at end of file
+end
spec/support/page_model.rb
@@ -15,4 +15,11 @@ class PageModel
   def on_page?
     current_path == page_path
   end
+
+  def login_with(username, password)
+    LoginPage.new.tap do |login_page|
+      login_page.visit_page
+      login_page.login_with(username, password)
+    end
+  end
 end