require 'spec_helper' # Feature: Sign in # As a user # I want to sign in # So I can visit protected areas of the site feature 'Sign in', :devise do # Scenario: User cannot sign in if not registered # Given I do not exist as a user # When I sign in with valid credentials # Then I see an invalid credentials message scenario 'user cannot sign in if not registered' do signin('test@example.com', 'please123') expect(page).to have_content 'Invalid email or password.' end # Scenario: User can sign in with valid credentials # Given I exist as a user # And I am not signed in # When I sign in with valid credentials # Then I see a success message scenario 'user can sign in with valid credentials' do user = FactoryGirl.create(:user) signin(user.email, user.password) expect(page).to have_content 'Signed in successfully.' end # Scenario: User cannot sign in with wrong email # Given I exist as a user # And I am not signed in # When I sign in with a wrong email # Then I see an invalid email message scenario 'user cannot sign in with wrong email' do user = FactoryGirl.create(:user) signin('invalid@email.com', user.password) expect(page).to have_content 'Invalid email or password.' end # Scenario: User cannot sign in with wrong password # Given I exist as a user # And I am not signed in # When I sign in with a wrong password # Then I see an invalid password message scenario 'user cannot sign in with wrong password' do user = FactoryGirl.create(:user) signin(user.email, 'invalidpass') expect(page).to have_content 'Invalid email or password.' end end