FIX: Update featured badge ranking when mass-awarding badges

FIX: Update featured badge ranking when mass-awarding badges

Follow-up to cff6e941de7e7ccbeb0835b234f42b904441a5fa

diff --git a/app/services/badge_granter.rb b/app/services/badge_granter.rb
index 783e53fcf6..f5b3148457 100644
--- a/app/services/badge_granter.rb
+++ b/app/services/badge_granter.rb
@@ -28,6 +28,8 @@ class BadgeGranter
         user_id: user.id,
         badge_id: badge.id
       )
+
+      UserBadge.update_featured_ranks!(user.id)
     end
   end
 
diff --git a/spec/jobs/mass_award_badge_spec.rb b/spec/jobs/mass_award_badge_spec.rb
index 67571abee4..b617a2e49b 100644
--- a/spec/jobs/mass_award_badge_spec.rb
+++ b/spec/jobs/mass_award_badge_spec.rb
@@ -28,5 +28,16 @@ describe Jobs::MassAwardBadge do
       expect(Notification.exists?(user: user)).to eq(true)
       expect(UserBadge.where.not(notification_id: nil).exists?(user: user, badge: badge)).to eq(true)
     end
+
+    it 'updates badge ranks correctly' do
+      user_2 = Fabricate(:user)
+
+      UserBadge.create!(badge_id: Badge::Member, user: user, granted_by: Discourse.system_user, granted_at: Time.now)
+
+      subject.execute(user_emails: [user.email, user_2.email], badge_id:  badge.id)
+
+      expect(UserBadge.find_by(user: user, badge: badge).featured_rank).to eq(2)
+      expect(UserBadge.find_by(user: user_2, badge: badge).featured_rank).to eq(1)
+    end
   end
 end

GitHub sha: 4fdfc266