Added 3 year anniversary badge (#1732)

* Added 3 year anniversary badge

* Fix linting error
This commit is contained in:
Glenn Carremans 2019-02-06 16:29:30 +01:00 committed by Ben Halpern
parent 54426ea20b
commit 1793956bdb
2 changed files with 26 additions and 1 deletions

View file

@ -2,6 +2,7 @@ module BadgeRewarder
def self.award_yearly_club_badges
award_one_year_badges
award_two_year_badges
award_three_year_badges
end
def self.award_beloved_comment_badges
@ -97,4 +98,16 @@ module BadgeRewarder
user.save if achievement.valid?
end
end
def self.award_three_year_badges
message = "Happy DEV birthday! Can you believe it's been three years already?!"
User.where("created_at < ? AND created_at > ?", 3.year.ago, 1097.days.ago).find_each do |user|
achievement = BadgeAchievement.create(
user_id: user.id,
badge_id: Badge.find_by_slug("three-year-club").id,
rewarding_context_message_markdown: message,
)
user.save if achievement.valid?
end
end
end

View file

@ -14,7 +14,7 @@ RSpec.describe BadgeRewarder do
expect(older_user.badge_achievements.size).to eq(0)
end
it "rewards 2-year birthday badge to birthday folks who registered a year ago" do
it "rewards 2-year birthday badge to birthday folks who registered 2 years ago" do
user = create(:user, created_at: 731.days.ago)
newer_user = create(:user, created_at: 6.days.ago)
older_user = create(:user, created_at: 800.days.ago)
@ -26,6 +26,18 @@ RSpec.describe BadgeRewarder do
expect(older_user.badge_achievements.size).to eq(0)
end
it "rewards 3-year birthday badge to birthday folks who registered 3 years ago" do
user = create(:user, created_at: 1096.days.ago)
newer_user = create(:user, created_at: 6.days.ago)
older_user = create(:user, created_at: 1200.days.ago)
create(:badge, title: "three-year-club")
create(:badge, title: "heysddssdhey")
described_class.award_yearly_club_badges
expect(user.badge_achievements.size).to eq(1)
expect(newer_user.badge_achievements.size).to eq(0)
expect(older_user.badge_achievements.size).to eq(0)
end
it "rewards beloved comment to folks who have a qualifying comment" do
create(:badge, title: "Beloved comment", slug: "beloved-comment")
comment = create(:comment, commentable: create(:article))