mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 07:11:34 +08:00
DEV: ensure rebaking works even when some users have inconsistent data (#30261)
* DEV: add db consistency check for UserEmail * DEV: add db consistency check for UserAvatar * DEV: ignore inconsistent data related to user avatars when deciding whether to rebake old posts Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com> --------- Co-authored-by: Alan Guo Xiang Tan <gxtan1990@gmail.com>
This commit is contained in:
@ -63,4 +63,26 @@ RSpec.describe UserEmail do
|
||||
expect(user.user_emails.count).to eq 3
|
||||
end
|
||||
end
|
||||
|
||||
describe ".ensure_consistency!" do
|
||||
context "when some users have no primary emails" do
|
||||
it "creates primary emails for the users without a primary email" do
|
||||
user_with_primary_email = Fabricate(:user)
|
||||
user_without_primary_email = Fabricate(:user)
|
||||
user_without_any_email = Fabricate(:user)
|
||||
|
||||
user_without_primary_email.primary_email.update_column(:primary, false)
|
||||
user_without_any_email.user_emails.delete_all
|
||||
original_email_of_user_with_primary_email = user_with_primary_email.primary_email.email
|
||||
|
||||
described_class.ensure_consistency!
|
||||
|
||||
expect(user_without_primary_email.reload.primary_email).to be_present
|
||||
expect(user_without_any_email.reload.primary_email).to be_present
|
||||
expect(
|
||||
user_with_primary_email.reload.primary_email.email,
|
||||
).to eq original_email_of_user_with_primary_email
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user