diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 2495a5962d..7ad32b2109 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -120,7 +120,7 @@ def email_params end def update_user_email - @user.update({email: email_params[:email]}) + @user.update({email: email_params[:email]&.strip}) @user.filter_old_emails!(@user.email) end diff --git a/spec/requests/users_spec.rb b/spec/requests/users_spec.rb index f9cd55c468..ef9d103d7b 100644 --- a/spec/requests/users_spec.rb +++ b/spec/requests/users_spec.rb @@ -258,6 +258,18 @@ expect(ActionMailer::Base.deliveries.last.body.encoded) .to match("Click here to confirm your email") end + + it "strips whitespace from email" do + patch update_email_users_path(user), + params: { + user: { + current_password: "12345678", + email: " newemail@example.com " + } + } + user.confirm + expect(user.email).to eq("newemail@example.com") + end end context "when failure" do