Remove hardcoded values in streak reward (#1671)

This commit is contained in:
Ben Halpern 2019-01-28 14:14:45 -05:00 committed by GitHub
parent 561882d9d5
commit 1cdbfe3af1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View file

@ -44,9 +44,9 @@ module BadgeRewarder
end
def self.award_streak_badge(num_weeks)
article_user_ids = Article.where("published_at > ?", 1.week.ago).pluck(:user_id)
article_user_ids = Article.where(published: true).where("published_at > ? AND score > ?", 1.week.ago, -25).pluck(:user_id) # No cred for super low quality
message = "Congrats on achieving this streak! Consistent writing is hard. The next streak badge you can get is the #{num_weeks * 2} Week Badge. 😉"
users = User.where(id: article_user_ids).where("articles_count > ?", 3)
users = User.where(id: article_user_ids).where("articles_count >= ?", num_weeks)
usernames = []
users.find_each do |user|
count = 0
@ -56,7 +56,7 @@ module BadgeRewarder
count = count + 1
end
end
if count > 3
if count >= num_weeks
usernames << user.username
end
end

View file

@ -81,6 +81,7 @@ RSpec.describe BadgeRewarder do
create(:badge, title: "4 Week Streak", slug: "4-week-streak")
user = create(:user)
create(:article, user: user, published: true, published_at: 26.days.ago)
create(:article, user: user, published: true, published_at: 19.days.ago)
create(:article, user: user, published: true, published_at: 5.days.ago)
described_class.award_streak_badge(4)
expect(user.badges.size).to eq(0)