diff --git a/app/models/object_event_hook_config.rb b/app/models/object_event_hook_config.rb index 0c300c97..768f956a 100644 --- a/app/models/object_event_hook_config.rb +++ b/app/models/object_event_hook_config.rb @@ -12,7 +12,7 @@ class ObjectEventHookConfig < ApplicationRecord validates :webhook_service, presence: true validates :configuration, presence: true - validates :object_event_types, presence: true + validates :object_event_types, presence: true, length: {minimum: 1} def webhook Houdini::WebhookAdapter.build(webhook_service, configuration.symbolize_keys) diff --git a/spec/models/object_event_hook_config_spec.rb b/spec/models/object_event_hook_config_spec.rb index 65c95d92..9ff3fdf9 100644 --- a/spec/models/object_event_hook_config_spec.rb +++ b/spec/models/object_event_hook_config_spec.rb @@ -8,6 +8,21 @@ RSpec.describe ObjectEventHookConfig, type: :model do let(:nonprofit) { create(:nm_justice) } let(:open_fn_config) { create(:open_fn_config, nonprofit_id: nonprofit.id) } + describe 'validation' do + subject{ oehc = ObjectEventHookConfig.new(object_event_types:[]); oehc.validate; oehc} + + it 'has an error for webhook_service missing' do + expect(subject.errors[:webhook_service]).to_not be_nil + end + + it 'has an error for configuraiton missing' do + expect(subject.errors[:configuration]).to_not be_nil + end + + it 'has an error for configuraition empty' do + expect(subject.errors[:object_event_types]).to_not be_empty + end + end describe '.webhook' do it 'returns an instance of OpenFn webhook' do webhook = double