Add administrative webhooks (#18510)

* Add administrative webhooks

* Fix error when webhook is deleted before delivery worker runs
This commit is contained in:
Eugen Rochko
2022-06-09 21:57:36 +02:00
committed by GitHub
parent 17ba5e1e61
commit a2871cd747
33 changed files with 530 additions and 8 deletions

View File

@ -0,0 +1,5 @@
Fabricator(:webhook) do
url { Faker::Internet.url }
secret { SecureRandom.hex }
events { Webhook::EVENTS }
end

View File

@ -0,0 +1,32 @@
require 'rails_helper'
RSpec.describe Webhook, type: :model do
let(:webhook) { Fabricate(:webhook) }
describe '#rotate_secret!' do
it 'changes the secret' do
previous_value = webhook.secret
webhook.rotate_secret!
expect(webhook.secret).to_not be_blank
expect(webhook.secret).to_not eq previous_value
end
end
describe '#enable!' do
before do
webhook.disable!
end
it 'enables the webhook' do
webhook.enable!
expect(webhook.enabled?).to be true
end
end
describe '#disable!' do
it 'disables the webhook' do
webhook.disable!
expect(webhook.enabled?).to be false
end
end
end

View File

@ -19,7 +19,7 @@ RSpec.describe URLValidator, type: :validator do
let(:compliant) { false }
it 'calls errors.add' do
expect(errors).to have_received(:add).with(attribute, I18n.t('applications.invalid_url'))
expect(errors).to have_received(:add).with(attribute, :invalid)
end
end