diff --git a/app/views/sign_up/emails/show.html.erb b/app/views/sign_up/emails/show.html.erb index 033e2b1948d..efb53bdb7d6 100644 --- a/app/views/sign_up/emails/show.html.erb +++ b/app/views/sign_up/emails/show.html.erb @@ -35,7 +35,7 @@

<%= t('devise.registrations.close_window') %>

- <% if FeatureManagement.enable_load_testing_mode? %> + <% if FeatureManagement.enable_load_testing_mode? && EmailAddress.find_with_email(email) %> <%= link_to( 'CONFIRM NOW', sign_up_create_email_confirmation_url(confirmation_token: EmailAddress.find_with_email(email).confirmation_token), diff --git a/app/views/users/emails/verify.html.erb b/app/views/users/emails/verify.html.erb index 20138508ef6..fa4af394dc7 100644 --- a/app/views/users/emails/verify.html.erb +++ b/app/views/users/emails/verify.html.erb @@ -25,7 +25,7 @@

<%= t('notices.use_diff_email.text_html', link_html: link_to(t('notices.use_diff_email.link'), add_email_path)) %>

<%= t('devise.registrations.close_window') %>

-<% if FeatureManagement.enable_load_testing_mode? %> +<% if FeatureManagement.enable_load_testing_mode? && EmailAddress.find_with_email(email) %> <%= link_to( 'CONFIRM NOW', sign_up_create_email_confirmation_url(confirmation_token: EmailAddress.find_with_email(email).confirmation_token), diff --git a/spec/views/sign_up/emails/show.html.erb_spec.rb b/spec/views/sign_up/emails/show.html.erb_spec.rb index ae928947cb1..af01a3d1536 100644 --- a/spec/views/sign_up/emails/show.html.erb_spec.rb +++ b/spec/views/sign_up/emails/show.html.erb_spec.rb @@ -1,8 +1,9 @@ require 'rails_helper' RSpec.describe 'sign_up/emails/show.html.erb' do + let(:email) { 'foo@bar.com' } before do - allow(view).to receive(:email).and_return('foo@bar.com') + allow(view).to receive(:email).and_return(email) @resend_email_confirmation_form = ResendEmailConfirmationForm.new end @@ -23,4 +24,45 @@ expect(rendered).to have_button(t('links.resend')) end + + context 'when enable_load_testing_mode? is true and email address found' do + before do + allow(FeatureManagement).to receive(:enable_load_testing_mode?).and_return(true) + create(:email_address, confirmation_token: 'some_token', email: email) + + render + end + + it 'generates the correct link' do + expect(rendered).to have_link( + 'CONFIRM NOW', + href: sign_up_create_email_confirmation_url(confirmation_token: 'some_token'), + id: 'confirm-now', + ) + end + end + + context 'when enable_load_testing_mode? is false' do + before do + allow(FeatureManagement).to receive(:enable_load_testing_mode?).and_return(false) + + render + end + + it 'does not generate the link' do + expect(rendered).not_to have_link('CONFIRM NOW', href: sign_up_create_email_confirmation_url) + end + end + + context 'when email address not found' do + before do + allow(FeatureManagement).to receive(:enable_load_testing_mode?).and_return(true) + + render + end + + it 'does not generate the link' do + expect(rendered).not_to have_link('CONFIRM NOW', href: sign_up_create_email_confirmation_url) + end + end end diff --git a/spec/views/users/emails/verify.html.erb_spec.rb b/spec/views/users/emails/verify.html.erb_spec.rb new file mode 100644 index 00000000000..61e91859daf --- /dev/null +++ b/spec/views/users/emails/verify.html.erb_spec.rb @@ -0,0 +1,68 @@ +require 'rails_helper' + +RSpec.describe 'users/emails/verify.html.erb' do + let(:email) { 'foo@bar.com' } + before do + allow(view).to receive(:email).and_return(email) + @resend_email_confirmation_form = ResendEmailConfirmationForm.new + end + + it 'has a localized title' do + expect(view).to receive(:title).with(t('titles.verify_email')) + + render + end + + it 'has a localized header' do + render + + expect(rendered).to have_selector('h1', text: t('headings.verify_email')) + end + + it 'contains link to resend confirmation page' do + render + + expect(rendered).to have_button(t('links.resend')) + end + + context 'when enable_load_testing_mode? is true and email address found' do + before do + allow(FeatureManagement).to receive(:enable_load_testing_mode?).and_return(true) + create(:email_address, confirmation_token: 'some_token', email: email) + + render + end + + it 'generates the correct link' do + expect(rendered).to have_link( + 'CONFIRM NOW', + href: sign_up_create_email_confirmation_url(confirmation_token: 'some_token'), + id: 'confirm-now', + ) + end + end + + context 'when enable_load_testing_mode? is false' do + before do + allow(FeatureManagement).to receive(:enable_load_testing_mode?).and_return(false) + + render + end + + it 'does not generate the link' do + expect(rendered).not_to have_link('CONFIRM NOW', href: sign_up_create_email_confirmation_url) + end + end + + context 'when email address not found' do + before do + allow(FeatureManagement).to receive(:enable_load_testing_mode?).and_return(true) + + render + end + + it 'does not generate the link' do + expect(rendered).not_to have_link('CONFIRM NOW', href: sign_up_create_email_confirmation_url) + end + end +end