chore: Move Twilio event processing to background job (#11094)
- Twilio events were being processed synchronously, leading to slow API responses. - This change moves Twilio event processing to a background job to improve performance and align with how other events (e.g., WhatsApp) are handled. --------- Co-authored-by: Pranav <pranav@chatwoot.com>
This commit is contained in:
@@ -2,17 +2,25 @@ require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Twilio::DeliveryStatusController', type: :request do
|
||||
include Rails.application.routes.url_helpers
|
||||
let(:twilio_service) { instance_double(Twilio::DeliveryStatusService) }
|
||||
|
||||
before do
|
||||
allow(Twilio::DeliveryStatusService).to receive(:new).and_return(twilio_service)
|
||||
allow(twilio_service).to receive(:perform)
|
||||
end
|
||||
describe 'POST /twilio/delivery_status' do
|
||||
let(:params) do
|
||||
{
|
||||
'MessageSid' => 'SM123',
|
||||
'MessageStatus' => 'delivered',
|
||||
'AccountSid' => 'AC123'
|
||||
}
|
||||
end
|
||||
|
||||
describe 'POST /twilio/delivery' do
|
||||
it 'calls incoming message service' do
|
||||
post twilio_delivery_status_index_url, params: {}
|
||||
expect(twilio_service).to have_received(:perform)
|
||||
it 'enqueues the Twilio delivery status job' do
|
||||
expect do
|
||||
post twilio_delivery_status_index_url, params: params
|
||||
end.to have_enqueued_job(Webhooks::TwilioDeliveryStatusJob).with(params)
|
||||
end
|
||||
|
||||
it 'returns no content status' do
|
||||
post twilio_delivery_status_index_url, params: params
|
||||
expect(response).to have_http_status(:no_content)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user