Files
astuto/spec/system/user_log_in_spec.rb
2023-03-19 19:57:53 +01:00

48 lines
1.2 KiB
Ruby

require 'rails_helper'
feature 'log in', type: :system, js: true do
let(:user) { FactoryBot.create(:user) }
before(:each) { user.confirm }
def log_in_as(user)
visit new_user_session_path
fill_in 'Email', with: user.email
fill_in 'Password', with: user.password
click_button 'Log in'
end
scenario 'with valid credentials' do
log_in_as user
expect(page).not_to have_current_path(new_user_session_path)
expect(page).to have_no_content('Log in')
expect(page).to have_css('.notice')
end
scenario 'with invalid credentials' do
visit new_user_session_path
fill_in 'Email', with: user.email + 'a' # wrong email
fill_in 'Password', with: user.password
click_button 'Log in'
expect(page).to have_current_path(new_user_session_path)
expect(page).to have_content('Log in')
expect(page).to have_css('.alert')
end
scenario 'log out' do
sign_in user
visit root_path
find('#navbarDropdown').click # open dropdown menu
click_link 'Sign out'
expect(page).to have_current_path(root_path)
expect(page).to have_content('Log in / Sign up')
expect(page).to have_css('.notice')
end
end