Skip badge awards for spam accounts (#15344)
* Don't award badges to banished users * Assert badges aren't created for spam accounts
This commit is contained in:
parent
f7474ed369
commit
0a47910e30
2 changed files with 10 additions and 0 deletions
|
|
@ -4,6 +4,8 @@ module Badges
|
|||
return unless (badge_id = Badge.id_for_slug(slug))
|
||||
|
||||
user_relation.find_each do |user|
|
||||
next if user.banished?
|
||||
|
||||
achievement = user.badge_achievements.create(
|
||||
badge_id: badge_id,
|
||||
rewarding_context_message_markdown: message_markdown,
|
||||
|
|
|
|||
|
|
@ -18,5 +18,13 @@ RSpec.describe Badges::Award, type: :service do
|
|||
expect(user2.badge_achievements.pluck(:rewarding_context_message_markdown))
|
||||
.to eq(["Congrats on a badge!"])
|
||||
end
|
||||
|
||||
it "doesn't award badges to spam accounts" do
|
||||
spammer = create(:user, username: "spam_account")
|
||||
|
||||
described_class.call(User.all, "one-year-club", "Congrats on a badge!")
|
||||
expect(user.badge_achievements.any?).to be true
|
||||
expect(spammer.badge_achievements.any?).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue