mirror of
https://github.com/discourse/discourse.git
synced 2025-02-21 03:57:10 +08:00
FIX: Don't send system message for new user of the month if disabled
This commit is contained in:
parent
01d2685c60
commit
3ade46de0b
@ -8,6 +8,7 @@ module Jobs
|
||||
|
||||
def execute(args)
|
||||
badge = Badge.find(Badge::NewUserOfTheMonth)
|
||||
return unless SiteSetting.enable_badges? and badge.enabled?
|
||||
|
||||
# Don't award it if a month hasn't gone by
|
||||
return if UserBadge.where("badge_id = ? AND granted_at >= ?",
|
||||
|
@ -24,6 +24,45 @@ describe Jobs::GrantNewUserOfTheMonthBadges do
|
||||
expect(badge).to be_present
|
||||
end
|
||||
|
||||
it "does nothing if badges are disabled" do
|
||||
SiteSetting.enable_badges = false
|
||||
|
||||
user = Fabricate(:user, created_at: 1.week.ago)
|
||||
p = Fabricate(:post, user: user)
|
||||
Fabricate(:post, user: user)
|
||||
|
||||
old_user = Fabricate(:user, created_at: 6.months.ago)
|
||||
PostAction.act(old_user, p, PostActionType.types[:like])
|
||||
old_user = Fabricate(:user, created_at: 6.months.ago)
|
||||
PostAction.act(old_user, p, PostActionType.types[:like])
|
||||
|
||||
SystemMessage.any_instance.expects(:create).never
|
||||
granter.execute({})
|
||||
|
||||
badge = user.user_badges.where(badge_id: Badge::NewUserOfTheMonth)
|
||||
expect(badge).to be_blank
|
||||
end
|
||||
|
||||
it "does nothing if the badge is disabled" do
|
||||
Badge.find(Badge::NewUserOfTheMonth).update_column(:enabled, false)
|
||||
|
||||
user = Fabricate(:user, created_at: 1.week.ago)
|
||||
p = Fabricate(:post, user: user)
|
||||
Fabricate(:post, user: user)
|
||||
|
||||
old_user = Fabricate(:user, created_at: 6.months.ago)
|
||||
PostAction.act(old_user, p, PostActionType.types[:like])
|
||||
old_user = Fabricate(:user, created_at: 6.months.ago)
|
||||
PostAction.act(old_user, p, PostActionType.types[:like])
|
||||
|
||||
SystemMessage.any_instance.expects(:create).never
|
||||
granter.execute({})
|
||||
|
||||
badge = user.user_badges.where(badge_id: Badge::NewUserOfTheMonth)
|
||||
expect(badge).to be_blank
|
||||
end
|
||||
|
||||
|
||||
it "does nothing if it's been awarded recently" do
|
||||
u0 = Fabricate(:user, created_at: 2.weeks.ago)
|
||||
BadgeGranter.grant(Badge.find(Badge::NewUserOfTheMonth), u0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user