diff --git a/app/controllers/users/email_confirmations_controller.rb b/app/controllers/users/email_confirmations_controller.rb index a5f26574d83..400db5766d2 100644 --- a/app/controllers/users/email_confirmations_controller.rb +++ b/app/controllers/users/email_confirmations_controller.rb @@ -41,7 +41,7 @@ def process_successful_confirmation(email_address) confirm_and_notify(email_address) if current_user flash[:success] = t('devise.confirmations.confirmed') - if params[:request_id] + if params[:request_id] && IdentityConfig.store.feature_select_email_to_share_enabled redirect_to sign_up_select_email_url else redirect_to account_url diff --git a/spec/controllers/users/email_confirmations_controller_spec.rb b/spec/controllers/users/email_confirmations_controller_spec.rb index b6206a1b810..4175888f23a 100644 --- a/spec/controllers/users/email_confirmations_controller_spec.rb +++ b/spec/controllers/users/email_confirmations_controller_spec.rb @@ -155,6 +155,29 @@ ) expect(response).to redirect_to(sign_up_select_email_url) end + + context 'when select email feature is disabled' do + before do + allow(IdentityConfig.store).to receive(:feature_select_email_to_share_enabled) + .and_return(false) + end + + it 'redirects to account page with success message' do + new_email = Faker::Internet.email + add_email_form = AddUserEmailForm.new + add_email_form.submit(user, email: new_email, request_id: sp_request_uuid) + email_record = add_email_form.email_address_record(new_email) + + get :create, params: { + confirmation_token: email_record.reload.confirmation_token, + request_id: sp_request_uuid, + from_select_email_flow: 'true', + } + + expect(response).to redirect_to(account_path) + expect(flash[:success]).to eq(t('devise.confirmations.confirmed')) + end + end end end end