From 71bc68efb3437ffc86d13141e5d183139af45a0d Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Sun, 16 Apr 2023 02:41:04 +0200 Subject: [PATCH] Test "sign out" --- test/application_system_test_case.rb | 7 +++++++ test/fixtures/users.yml | 1 + test/system/users_test.rb | 25 +++++++++++-------------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb index 9758202..965f08c 100644 --- a/test/application_system_test_case.rb +++ b/test/application_system_test_case.rb @@ -5,4 +5,11 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase Selenium::WebDriver.logger.ignore(:capabilities) driven_by :selenium, using: :headless_firefox, screen_size: [1600, 900] + + def sign_in(user: users.sample, password: randomize_user_password!(user)) + visit new_user_session_url + fill_in User.human_attribute_name(:email).capitalize, with: user.email + fill_in User.human_attribute_name(:password).capitalize, with: password + click_on t(:sign_in) + end end diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index 7e1c0e6..0a5c8db 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -2,3 +2,4 @@ admin: email: admin@dev27.fixin.me status: admin encrypted_password: <%= Devise::Encryptor.digest(User, 'admin') %> + confirmed_at: <%= DateTime.now %> diff --git a/test/system/users_test.rb b/test/system/users_test.rb index 1086cdc..ff4172a 100644 --- a/test/system/users_test.rb +++ b/test/system/users_test.rb @@ -6,28 +6,25 @@ class UsersTest < ApplicationSystemTestCase end test "sign in" do - visit new_user_session_url - users.sample.then do |user| - fill_in User.human_attribute_name(:email).capitalize, with: user.email - fill_in User.human_attribute_name(:password).capitalize, with: randomize_user_password!(user) - end - click_on t(:sign_in) + sign_in assert_no_current_path new_user_session_path assert_text t('devise.sessions.signed_in') end test "sign in fails with invalid password" do - visit new_user_session_url - users.sample.then do |user| - fill_in User.human_attribute_name(:email).capitalize, with: user.email - fill_in User.human_attribute_name(:password).capitalize, with: random_password - end - click_on t(:sign_in) + sign_in password: random_password assert_current_path new_user_session_path assert_text t('devise.failure.invalid', authentication_keys: User.human_attribute_name(:email)) end - # TODO: require e-mail confirmation on registration + test "sign out" do + sign_in user: @admin + visit root_url + click_on t(:sign_out) + assert_current_path new_user_session_path + assert_text t('devise.sessions.signed_out') + end + test "register" do visit new_user_session_url click_link t(:register) @@ -39,7 +36,7 @@ class UsersTest < ApplicationSystemTestCase click_on t(:register) end assert_no_current_path new_user_registration_path - assert_text t('devise.registrations.signed_up') + assert_text t('devise.registrations.signed_up_but_unconfirmed') end #test "visiting the index" do