mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
FEATURE: Add support for user badge revocation webhook events (#21204)
Currently, only user badge grants emit webhook events. This change extends the `user_badge` webhook to emit user badge revocation events. A new `user_badge_revoked` event has been introduced instead of relying on the existing `user_badge_removed` event. `user_badge_removed` emitted just the `badge_id` and `user_id` which aren't helpful for generating a meaningful webhook payload for revoked(deleted) user badges. The new event emits the user badge object.
This commit is contained in:
@ -31,6 +31,22 @@ RSpec.describe UserBadge do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#destroy" do
|
||||
it "triggers the 'user_badge_revoked' DiscourseEvent" do
|
||||
user_badge =
|
||||
UserBadge.create(
|
||||
badge: badge,
|
||||
user: user,
|
||||
granted_at: Time.zone.now,
|
||||
granted_by: Discourse.system_user,
|
||||
)
|
||||
|
||||
event = DiscourseEvent.track(:user_badge_revoked) { user_badge.destroy! }
|
||||
|
||||
expect(event).to be_present
|
||||
end
|
||||
end
|
||||
|
||||
describe "featured rank" do
|
||||
fab!(:user) { Fabricate(:user) }
|
||||
fab!(:user_badge_tl1) do
|
||||
|
Reference in New Issue
Block a user