Commit 3595ab1
Changed files (4)
spec
features
support
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