demarches-normaliennes/spec/system/users/change_email_spec.rb
2024-08-22 09:26:48 +02:00

66 lines
1.7 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# frozen_string_literal: true
describe 'Changing an email' do
let(:old_email) { 'old@email.com' }
let(:user) { create(:user, email: old_email) }
before do
login_as user, scope: :user
end
scenario 'is easy' do
new_email = 'new@email.com'
visit '/profil'
fill_in :user_email, with: new_email
perform_enqueued_jobs do
click_button 'Changer mon adresse'
end
expect(page).to have_content(I18n.t('devise.registrations.update_needs_confirmation'))
expect(page).to have_content(old_email)
expect(page).to have_content(new_email)
click_confirmation_link_for(new_email)
expect(page).to have_content(I18n.t('devise.confirmations.confirmed'))
expect(page).not_to have_content(old_email)
expect(page).to have_content(new_email)
expect(user.reload.email).to eq(new_email)
end
end
describe 'Merging account' do
let(:old_user) { create(:user) }
let(:new_user) { create(:user) }
before do
login_as old_user, scope: :user
end
scenario 'is easy' do
visit '/profil'
fill_in :user_email, with: new_user.email
perform_enqueued_jobs do
click_button 'Changer mon adresse'
end
expect(page).to have_content(I18n.t('devise.registrations.update_needs_confirmation'))
expect(page).to have_content(old_user.email)
expect(page).to have_content(new_user.email)
login_as new_user, scope: :user
visit '/profil'
expect(page).to have_content("Acceptez-vous dabsorber le compte de #{old_user.email}")
click_on 'Accepter la fusion'
expect(page).not_to have_content(old_user.email)
expect(page).to have_content(new_user.email)
expect { old_user.reload }.to raise_error(ActiveRecord::RecordNotFound)
end
end