From 15ea00328c94f29cde53fa918cc777c17d1e4534 Mon Sep 17 00:00:00 2001 From: Ben Halpern Date: Fri, 3 May 2019 15:38:25 -0400 Subject: [PATCH] Award credits along with badge achievements (#2683) --- app/models/badge_achievement.rb | 5 +++++ spec/models/badge_achievement_spec.rb | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/app/models/badge_achievement.rb b/app/models/badge_achievement.rb index e402a6df8..f254febea 100644 --- a/app/models/badge_achievement.rb +++ b/app/models/badge_achievement.rb @@ -9,6 +9,7 @@ class BadgeAchievement < ApplicationRecord after_create :notify_recipient after_create :send_email_notification + after_create :award_credits before_validation :render_rewarding_context_message_html def render_rewarding_context_message_html @@ -32,4 +33,8 @@ class BadgeAchievement < ApplicationRecord NotifyMailer.new_badge_email(self).deliver if user.class.name == "User" && user.email.present? && user.email_badge_notifications end handle_asynchronously :send_email_notification + + def award_credits + Credit.add_to(user, 5) + end end diff --git a/spec/models/badge_achievement_spec.rb b/spec/models/badge_achievement_spec.rb index 153dac2dd..c23d6520d 100644 --- a/spec/models/badge_achievement_spec.rb +++ b/spec/models/badge_achievement_spec.rb @@ -14,4 +14,9 @@ RSpec.describe BadgeAchievement, type: :model do achievement = create(:badge_achievement) expect(achievement.rewarding_context_message).to include("") end + + it "awards credits after create" do + achievement = create(:badge_achievement) + expect(achievement.user.credits.size).to eq(5) + end end