Merge pull request #6175 from vinothkannans/post_approval_webhook

FEATURE: Webhook for post approval events
This commit is contained in:
Guo Xiang Tan
2018-07-27 10:50:49 +08:00
committed by GitHub
8 changed files with 91 additions and 0 deletions

View File

@ -165,4 +165,37 @@ describe QueuedPost do
end
end
describe 'create' do
subject { Fabricate.build(:queued_post) }
it 'triggers a extensibility event' do
event = DiscourseEvent.track_events { subject.save! }.first
expect(event[:event_name]).to eq(:queued_post_created)
expect(event[:params].first).to eq(subject)
end
end
describe 'approve' do
subject { Fabricate(:queued_post) }
it 'triggers a extensibility event' do
event = DiscourseEvent.track_events { subject.approve!(Discourse.system_user) }.last
expect(event[:event_name]).to eq(:approved_post)
expect(event[:params].first).to eq(subject)
end
end
describe 'reject' do
subject { Fabricate(:queued_post) }
it 'triggers a extensibility event' do
event = DiscourseEvent.track_events { subject.reject!(Discourse.system_user) }.last
expect(event[:event_name]).to eq(:rejected_post)
expect(event[:params].first).to eq(subject)
end
end
end

View File

@ -417,5 +417,29 @@ describe WebHook do
payload = JSON.parse(job_args["payload"])
expect(payload["id"]).to eq(post_action.id)
end
it 'should enqueue the right hooks for queued post events' do
Fabricate(:queued_post_web_hook)
queued_post = Fabricate(:queued_post)
job_args = Jobs::EmitWebHookEvent.jobs.last["args"].first
expect(job_args["event_name"]).to eq("queued_post_created")
payload = JSON.parse(job_args["payload"])
expect(payload["id"]).to eq(queued_post.id)
queued_post.approve!(Discourse.system_user)
job_args = Jobs::EmitWebHookEvent.jobs.last["args"].first
expect(job_args["event_name"]).to eq("approved_post")
payload = JSON.parse(job_args["payload"])
expect(payload["id"]).to eq(queued_post.id)
queued_post.reject!(Discourse.system_user)
job_args = Jobs::EmitWebHookEvent.jobs.last["args"].first
expect(job_args["event_name"]).to eq("rejected_post")
payload = JSON.parse(job_args["payload"])
expect(payload["id"]).to eq(queued_post.id)
end
end
end