mirror of
https://github.com/discourse/discourse.git
synced 2025-06-02 04:08:41 +08:00
Merge pull request #6175 from vinothkannans/post_approval_webhook
FEATURE: Webhook for post approval events
This commit is contained in:
@ -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
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user