discourse/plugins/automation/spec/scripts/zapier_webhook_spec.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

40 lines
1.0 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
describe "ZapierWebhook" do
fab!(:topic)
fab!(:automation) { Fabricate(:automation, script: DiscourseAutomation::Scripts::ZAPIER_WEBHOOK) }
context "with valid webhook url" do
before do
automation.upsert_field!(
"webhook_url",
"text",
{ value: "https://hooks.zapier.com/hooks/catch/foo/bar" },
)
end
it "enqueues the zapier call" do
expect { automation.trigger! }.to change {
Jobs::DiscourseAutomation::CallZapierWebhook.jobs.length
}.by(1)
end
end
context "with invalid webhook url" do
let(:fake_logger) { FakeLogger.new }
before { Rails.logger.broadcast_to(fake_logger) }
after { Rails.logger.stop_broadcasting_to(fake_logger) }
it "logs an error and do nothing" do
expect { automation.trigger! }.not_to change {
Jobs::DiscourseAutomation::CallZapierWebhook.jobs.length
}
expect(Rails.logger.warnings.first).to match(/is not a valid Zapier/)
end
end
end