BUG FIX: Dont send re-conf email if email is unchanged
parent
e78d8052fa
commit
3c3f711a1d
|
@ -32,7 +32,7 @@ private
|
|||
# Self hosted users will often not have an email server.
|
||||
# We can update emails immediately in those circumstances.
|
||||
def skip_email_stuff
|
||||
@skip_email_stuff ||= !!ENV["NO_EMAILS"]
|
||||
@skip_email_stuff ||= !!ENV["NO_EMAILS"] || (email == user.email)
|
||||
end
|
||||
|
||||
def set_unconfirmed_email
|
||||
|
|
|
@ -8,11 +8,19 @@ describe Users::Update do
|
|||
password: "password12345",
|
||||
password_confirmation: "password12345",
|
||||
agree_to_terms: true)
|
||||
u = User.last
|
||||
u2 = FactoryBot.create(:user)
|
||||
Users::Update.run!(user: u, email: u.email)
|
||||
result = Users::Update.run(user: u, email: u2.email)
|
||||
expect(result.success?).to be(false)
|
||||
expect(result.errors.message_list).to include(Users::Update::EMAIL_IN_USE)
|
||||
u = User.last
|
||||
u2 = FactoryBot.create(:user)
|
||||
Users::Update.run!(user: u, email: u.email)
|
||||
result = Users::Update.run(user: u, email: u2.email)
|
||||
expect(result.success?).to be(false)
|
||||
expect(result.errors.message_list).to include(Users::Update::EMAIL_IN_USE)
|
||||
end
|
||||
|
||||
it 'ignores unchanged emails' do
|
||||
u = FactoryBot.create(:user)
|
||||
# "useless" update to user record.
|
||||
result = Users::Update.run(user: u, email: u.email)
|
||||
expect(result.success?).to be(true)
|
||||
expect(u.reload.unconfirmed_email).to eq(nil)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue