FEATURE: webhook for flag events

This commit is contained in:
Arpit Jalan
2018-04-11 19:47:05 +05:30
parent 7ff78cc013
commit a16b616861
9 changed files with 116 additions and 0 deletions

View File

@@ -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

View File

@@ -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