Commit a0bbfa9f authored by Alex Buijs's avatar Alex Buijs

Don't redirect to the Almost there page

Don't redirect to the Almost there page after registration
and after resending confirmation instructions
parent 5cbe16c3
...@@ -11,7 +11,7 @@ class ConfirmationsController < Devise::ConfirmationsController ...@@ -11,7 +11,7 @@ class ConfirmationsController < Devise::ConfirmationsController
protected protected
def after_resending_confirmation_instructions_path_for(resource) def after_resending_confirmation_instructions_path_for(resource)
users_almost_there_path Feature.enabled?(:soft_email_confirmation) ? stored_location_for(resource) || dashboard_projects_path : users_almost_there_path
end end
def after_confirmation_path_for(resource_name, resource) def after_confirmation_path_for(resource_name, resource)
......
...@@ -68,12 +68,12 @@ class RegistrationsController < Devise::RegistrationsController ...@@ -68,12 +68,12 @@ class RegistrationsController < Devise::RegistrationsController
def after_sign_up_path_for(user) def after_sign_up_path_for(user)
Gitlab::AppLogger.info(user_created_message(confirmed: user.confirmed?)) Gitlab::AppLogger.info(user_created_message(confirmed: user.confirmed?))
user.confirmed? ? stored_location_for(user) || dashboard_projects_path : users_almost_there_path user.confirmed? || Feature.enabled?(:soft_email_confirmation) ? stored_location_for(user) || dashboard_projects_path : users_almost_there_path
end end
def after_inactive_sign_up_path_for(resource) def after_inactive_sign_up_path_for(resource)
Gitlab::AppLogger.info(user_created_message) Gitlab::AppLogger.info(user_created_message)
users_almost_there_path Feature.enabled?(:soft_email_confirmation) ? dashboard_projects_path : users_almost_there_path
end end
private private
......
...@@ -26,13 +26,36 @@ describe RegistrationsController do ...@@ -26,13 +26,36 @@ describe RegistrationsController do
end end
context 'when send_user_confirmation_email is true' do context 'when send_user_confirmation_email is true' do
it 'does not authenticate user and sends confirmation email' do before do
stub_application_setting(send_user_confirmation_email: true) stub_application_setting(send_user_confirmation_email: true)
end
context 'when soft email confirmation is not enabled' do
before do
stub_feature_flags(soft_email_confirmation: false)
allow(User).to receive(:allow_unconfirmed_access_for).and_return 0
end
it 'does not authenticate the user and sends a confirmation email' do
post(:create, params: user_params)
expect(ActionMailer::Base.deliveries.last.to.first).to eq(user_params[:user][:email])
expect(subject.current_user).to be_nil
end
end
context 'when soft email confirmation is enabled' do
before do
stub_feature_flags(soft_email_confirmation: true)
allow(User).to receive(:allow_unconfirmed_access_for).and_return 2.days
end
post(:create, params: user_params) it 'authenticates the user and sends a confirmation email' do
post(:create, params: user_params)
expect(ActionMailer::Base.deliveries.last.to.first).to eq(user_params[:user][:email]) expect(ActionMailer::Base.deliveries.last.to.first).to eq(user_params[:user][:email])
expect(subject.current_user).to be_nil expect(response).to redirect_to(dashboard_projects_path)
end
end end
end end
......
...@@ -162,24 +162,51 @@ describe 'Signup' do ...@@ -162,24 +162,51 @@ describe 'Signup' do
end end
context 'with no errors' do context 'with no errors' do
context "when sending confirmation email" do context 'when sending confirmation email' do
before do before do
stub_application_setting(send_user_confirmation_email: true) stub_application_setting(send_user_confirmation_email: true)
end end
it 'creates the user account and sends a confirmation email' do context 'when soft email confirmation is not enabled' do
visit root_path before do
stub_feature_flags(soft_email_confirmation: false)
end
fill_in 'new_user_name', with: new_user.name it 'creates the user account and sends a confirmation email' do
fill_in 'new_user_username', with: new_user.username visit root_path
fill_in 'new_user_email', with: new_user.email
fill_in 'new_user_email_confirmation', with: new_user.email fill_in 'new_user_name', with: new_user.name
fill_in 'new_user_password', with: new_user.password fill_in 'new_user_username', with: new_user.username
fill_in 'new_user_email', with: new_user.email
fill_in 'new_user_email_confirmation', with: new_user.email
fill_in 'new_user_password', with: new_user.password
expect { click_button 'Register' }.to change { User.count }.by(1)
expect(current_path).to eq users_almost_there_path
expect(page).to have_content('Please check your email to confirm your account')
end
end
context 'when soft email confirmation is enabled' do
before do
stub_feature_flags(soft_email_confirmation: true)
end
it 'creates the user account and sends a confirmation email' do
visit root_path
fill_in 'new_user_name', with: new_user.name
fill_in 'new_user_username', with: new_user.username
fill_in 'new_user_email', with: new_user.email
fill_in 'new_user_email_confirmation', with: new_user.email
fill_in 'new_user_password', with: new_user.password
expect { click_button 'Register' }.to change { User.count }.by(1) expect { click_button 'Register' }.to change { User.count }.by(1)
expect(current_path).to eq users_almost_there_path expect(current_path).to eq dashboard_projects_path
expect(page).to have_content("Please check your email to confirm your account") expect(page).to have_content("Please check your email (#{new_user.email}) to verify that you own this address.")
end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment