refactor: update webhook job parameters to include account webhook and delivery ID

This commit is contained in:
gabrieljablonski 2026-03-20 00:48:50 -03:00
parent 8fcef79847
commit 89cd41c4cf
5 changed files with 41 additions and 23 deletions

View File

@ -22,7 +22,8 @@ describe WebhookListener do
it 'triggers the webhook event' do it 'triggers the webhook event' do
webhook = create(:webhook, account: account, inbox: inbox) webhook = create(:webhook, account: account, inbox: inbox)
expect(WebhookJob).to receive(:perform_later) expect(WebhookJob).to receive(:perform_later)
.with(webhook.url, message.webhook_data.merge(event: 'message_created')).once .with(webhook.url, message.webhook_data.merge(event: 'message_created'), :account_webhook,
secret: webhook.secret, delivery_id: instance_of(String)).once
listener.message_created(message_created_event) listener.message_created(message_created_event)
end end
@ -124,7 +125,10 @@ describe WebhookListener do
context 'when webhook is configured and message is incoming' do context 'when webhook is configured and message is incoming' do
it 'triggers the webhook event' do it 'triggers the webhook event' do
webhook = create(:webhook, inbox: inbox, account: account, subscriptions: ['message_incoming']) webhook = create(:webhook, inbox: inbox, account: account, subscriptions: ['message_incoming'])
expect(WebhookJob).to receive(:perform_later).with(webhook.url, incoming_message.webhook_data.merge(event: 'message_incoming')).once expect(WebhookJob).to receive(:perform_later).with(
webhook.url, incoming_message.webhook_data.merge(event: 'message_incoming'), :account_webhook,
secret: webhook.secret, delivery_id: instance_of(String)
).once
listener.message_incoming(incoming_message_event) listener.message_incoming(incoming_message_event)
end end
end end
@ -164,7 +168,10 @@ describe WebhookListener do
context 'when webhook is configured and message is outgoing' do context 'when webhook is configured and message is outgoing' do
it 'triggers the webhook event' do it 'triggers the webhook event' do
webhook = create(:webhook, inbox: inbox, account: account, subscriptions: ['message_outgoing']) webhook = create(:webhook, inbox: inbox, account: account, subscriptions: ['message_outgoing'])
expect(WebhookJob).to receive(:perform_later).with(webhook.url, message.webhook_data.merge(event: 'message_outgoing')).once expect(WebhookJob).to receive(:perform_later).with(
webhook.url, message.webhook_data.merge(event: 'message_outgoing'), :account_webhook,
secret: webhook.secret, delivery_id: instance_of(String)
).once
listener.message_outgoing(message_created_event) listener.message_outgoing(message_created_event)
end end
end end
@ -518,7 +525,10 @@ describe WebhookListener do
provider_event_data: provider_event_data provider_event_data: provider_event_data
} }
expect(WebhookJob).to receive(:perform_later).with(webhook.url, payload).once expect(WebhookJob).to receive(:perform_later).with(
webhook.url, payload, :account_webhook,
secret: webhook.secret, delivery_id: instance_of(String)
).once
listener.provider_event_received(provider_event) listener.provider_event_received(provider_event)
end end
end end
@ -543,7 +553,10 @@ describe WebhookListener do
provider_event_data: provider_event_data provider_event_data: provider_event_data
} }
expect(WebhookJob).to receive(:perform_later).with(webhook.url, payload).once expect(WebhookJob).to receive(:perform_later).with(
webhook.url, payload, :account_webhook,
secret: webhook.secret, delivery_id: instance_of(String)
).once
listener.provider_event_received(provider_event) listener.provider_event_received(provider_event)
end end

View File

@ -50,7 +50,7 @@ RSpec.describe Portal do
end end
it 'does not allow drafting the default locale' do it 'does not allow drafting the default locale' do
portal.update!(config: { allowed_locales: %w[en es], draft_locales: ['en'], default_locale: 'en' }) portal.update(config: { allowed_locales: %w[en es], draft_locales: ['en'], default_locale: 'en' }) # rubocop:disable Rails/SaveBang
expect(portal).not_to be_valid expect(portal).not_to be_valid
expect(portal.errors.full_messages).to include('Config default locale cannot be drafted.') expect(portal.errors.full_messages).to include('Config default locale cannot be drafted.')

View File

@ -8,11 +8,12 @@ parameters:
- name: typing_status - name: typing_status
in: query in: query
required: true required: true
type: string schema:
enum: type: string
- 'on' enum:
- 'recording' - 'on'
- 'off' - 'recording'
- 'off'
description: Typing status. description: Typing status.
requestBody: requestBody:
required: true required: true

View File

@ -1208,12 +1208,14 @@
"name": "typing_status", "name": "typing_status",
"in": "query", "in": "query",
"required": true, "required": true,
"type": "string", "schema": {
"enum": [ "type": "string",
"on", "enum": [
"recording", "on",
"off" "recording",
], "off"
]
},
"description": "Typing status." "description": "Typing status."
} }
], ],

View File

@ -378,12 +378,14 @@
"name": "typing_status", "name": "typing_status",
"in": "query", "in": "query",
"required": true, "required": true,
"type": "string", "schema": {
"enum": [ "type": "string",
"on", "enum": [
"recording", "on",
"off" "recording",
], "off"
]
},
"description": "Typing status." "description": "Typing status."
} }
], ],