mirror of
https://github.com/discourse/discourse.git
synced 2025-09-04 08:47:37 +08:00
FIX: Merging users shouldn't add more than 1 secondary email
This commit is contained in:
parent
a7c50039de
commit
79590e4bec
2 changed files with 17 additions and 3 deletions
|
@ -5,8 +5,10 @@ describe UserMerger do
|
|||
let!(:source_user) { Fabricate(:user_single_email, username: 'alice1', email: 'alice@work.com') }
|
||||
let(:walter) { Fabricate(:walter_white) }
|
||||
|
||||
def merge_users!
|
||||
UserMerger.new(source_user, target_user).merge!
|
||||
def merge_users!(source = nil, target = nil)
|
||||
source ||= source_user
|
||||
target ||= target_user
|
||||
UserMerger.new(source, target).merge!
|
||||
end
|
||||
|
||||
it "changes owner of topics and posts" do
|
||||
|
@ -836,6 +838,17 @@ describe UserMerger do
|
|||
expect(UserEmail.where(user_id: source_user.id).count).to eq(0)
|
||||
end
|
||||
|
||||
it "skips merging email adresses when a secondary email address exists" do
|
||||
merge_users!(source_user, target_user)
|
||||
|
||||
alice2 = Fabricate(:user_single_email, username: 'alice2', email: 'alice@foo.com')
|
||||
merge_users!(alice2, target_user)
|
||||
|
||||
emails = UserEmail.where(user_id: target_user.id).pluck(:email, :primary)
|
||||
expect(emails).to contain_exactly(['alice@example.com', true], ['alice@work.com', false])
|
||||
expect(UserEmail.where(user_id: source_user.id).count).to eq(0)
|
||||
end
|
||||
|
||||
it "updates exports" do
|
||||
UserExport.create(file_name: "user-archive-alice1-190218-003249", user_id: source_user.id)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue