mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: webhook for flag events
This commit is contained in:
@@ -63,3 +63,11 @@ Fabricator(:tag_web_hook, from: :web_hook) do
|
||||
web_hook.web_hook_event_types = [transients[:tag_hook]]
|
||||
end
|
||||
end
|
||||
|
||||
Fabricator(:flag_web_hook, from: :web_hook) do
|
||||
transient flag_hook: WebHookEventType.find_by(name: 'flag')
|
||||
|
||||
after_build do |web_hook, transients|
|
||||
web_hook.web_hook_event_types = [transients[:flag_hook]]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -710,4 +710,36 @@ describe PostAction do
|
||||
end
|
||||
end
|
||||
|
||||
describe "triggers webhook events" do
|
||||
let(:post) { Fabricate(:post) }
|
||||
|
||||
it 'flag created' do
|
||||
event = DiscourseEvent.track_events { PostAction.act(eviltrout, post, PostActionType.types[:spam]) }.last
|
||||
expect(event[:event_name]).to eq(:flag_created)
|
||||
end
|
||||
|
||||
context "resolving flags" do
|
||||
before do
|
||||
@flag = PostAction.act(eviltrout, post, PostActionType.types[:spam])
|
||||
end
|
||||
|
||||
it 'flag agreed' do
|
||||
event = DiscourseEvent.track_events { PostAction.agree_flags!(post, moderator) }.last
|
||||
expect(event[:event_name]).to eq(:flag_agreed)
|
||||
expect(event[:params].first).to eq(@flag)
|
||||
end
|
||||
|
||||
it 'flag disagreed' do
|
||||
event = DiscourseEvent.track_events { PostAction.clear_flags!(post, moderator) }.last
|
||||
expect(event[:event_name]).to eq(:flag_disagreed)
|
||||
expect(event[:params].first).to eq(@flag)
|
||||
end
|
||||
|
||||
it 'flag deferred' do
|
||||
event = DiscourseEvent.track_events { PostAction.defer_flags!(post, moderator) }.last
|
||||
expect(event[:event_name]).to eq(:flag_deferred)
|
||||
expect(event[:params].first).to eq(@flag)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user