Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions app/forms/add_user_email_form.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def new_email_address(params)
attr_reader :success, :email_address

def valid_form?
@allow && valid? && !email_taken?
@allow && valid?
end

def process_successful_submission
Expand All @@ -54,7 +54,6 @@ def process_successful_submission

def extra_analytics_attributes
{
email_already_exists: email_taken?,
user_id: existing_user.uuid,
domain_name: email&.split('@')&.last,
}.merge(@recaptcha_h)
Expand Down
3 changes: 2 additions & 1 deletion app/validators/form_add_email_validator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def downcase_and_strip

def email_is_available_to_user
email_address = EmailAddress.find_with_email(email)
@email_taken = true if email_address&.user_id == @user.id
return unless email_address&.user_id == @user.id
errors.add(:email, I18n.t('email_addresses.add.duplicate'))
end
end
2 changes: 2 additions & 0 deletions config/locales/email_addresses/en.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
en:
email_addresses:
add:
duplicate: This email address is already registered to your account.
delete:
confirm: Are you sure you want to delete %{email}?
failure: Unable to delete this email address.
Expand Down
2 changes: 2 additions & 0 deletions config/locales/email_addresses/es.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
es:
email_addresses:
add:
duplicate: Esta dirección de correo electrónico ya está registrada en su cuenta.
delete:
confirm: "¿Estas seguro que quieres borrarlo %{email}?"
failure: No se puede eliminar esta dirección de correo electrónico.
Expand Down
2 changes: 2 additions & 0 deletions config/locales/email_addresses/fr.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
fr:
email_addresses:
add:
duplicate: Cette adresse e-mail est déjà enregistrée sur votre compte.
delete:
confirm: Etes-vous sûr que vous voulez supprimer %{email}?
failure: Impossible de supprimer cette adresse email.
Expand Down
15 changes: 15 additions & 0 deletions spec/features/multiple_emails/add_email_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,21 @@
expect(page).to have_current_path(add_email_path)
end

it 'stays on form and gives an error message when adding an email already on the account' do
user = create(:user, :signed_up)
sign_in_and_2fa_user(user)
visit account_path
click_link t('account.index.email_add')

expect(page).to have_current_path(add_email_path)

fill_in 'Email', with: user.email_addresses.first.email
click_button t('forms.buttons.submit.default')

expect(page).to have_current_path(add_email_path)
expect(page).to have_content(I18n.t('email_addresses.add.duplicate'))
end

it 'does not show verify screen without an email in session from add email' do
user = create(:user, :signed_up)
sign_in_and_2fa_user(user)
Expand Down