Update and test resend confirmation form

This commit is contained in:
2023-04-19 19:50:15 +02:00
parent 7dabbd3036
commit 30a3ecd6d0
4 changed files with 48 additions and 27 deletions

View File

@@ -25,6 +25,31 @@ class UsersTest < ApplicationSystemTestCase
assert_text t('devise.sessions.signed_out')
end
test "recover password" do
visit new_user_session_url
click_link t(:recover_password)
fill_in User.human_attribute_name(:email).capitalize,
with: users.select(&:confirmed?).sample.email
assert_emails 1 do
click_on t(:recover_password)
end
assert_current_path new_user_session_path
assert_text t('devise.passwords.send_instructions')
with_last_email do |mail|
visit Capybara.string(mail.body.to_s).find_link("Change my password")[:href]
end
new_password = random_password
fill_in t('users.passwords.edit.new_password'), with: new_password
fill_in t('users.passwords.edit.password_confirmation'), with: new_password
assert_emails 1 do
click_on t('users.passwords.edit.update_password')
end
assert_no_current_path user_password_path
assert_text t('devise.passwords.updated')
end
test "register" do
visit new_user_session_url
click_link t(:register)
@@ -50,27 +75,21 @@ class UsersTest < ApplicationSystemTestCase
assert User.last.confirmed?
end
test "recover password" do
test "resend confirmation" do
visit new_user_session_url
click_link t(:recover_password)
click_link t(:register)
click_link t(:resend_confirmation)
fill_in User.human_attribute_name(:email).capitalize, with: users.sample.email
fill_in User.human_attribute_name(:email).capitalize,
with: users.reject(&:confirmed?).sample.email
assert_emails 1 do
click_on t(:recover_password)
click_on t(:resend_confirmation)
end
assert_current_path new_user_session_path
assert_text t('devise.passwords.send_instructions')
assert_text t('devise.confirmations.send_instructions')
with_last_email do |mail|
visit Capybara.string(mail.body.to_s).find_link("Change my password")[:href]
visit Capybara.string(mail.body.to_s).find_link("Confirm my account")[:href]
end
new_password = random_password
fill_in t('users.passwords.edit.new_password'), with: new_password
fill_in t('users.passwords.edit.password_confirmation'), with: new_password
assert_emails 1 do
click_on t('users.passwords.edit.update_password')
end
assert_no_current_path user_password_path
assert_text t('devise.passwords.updated')
end
end