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

41 lines
1017 B
Ruby

# 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
before do
@orig_logger = Rails.logger
Rails.logger = @fake_logger = FakeLogger.new
end
after { Rails.logger = @orig_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