chore: Move Facebook event processing to worker (#2988)
This commit is contained in:
@@ -4,7 +4,7 @@ describe ::Messages::Facebook::MessageBuilder do
|
||||
subject(:message_builder) { described_class.new(incoming_fb_text_message, facebook_channel.inbox).perform }
|
||||
|
||||
let!(:facebook_channel) { create(:channel_facebook_page) }
|
||||
let!(:message_object) { JSON.parse(build(:incoming_fb_text_message).to_json, object_class: OpenStruct) }
|
||||
let!(:message_object) { build(:incoming_fb_text_message).to_json }
|
||||
let!(:incoming_fb_text_message) { Integrations::Facebook::MessageParser.new(message_object) }
|
||||
let(:fb_object) { double }
|
||||
|
||||
|
||||
@@ -2,10 +2,11 @@
|
||||
|
||||
FactoryBot.define do
|
||||
factory :incoming_fb_text_message, class: Hash do
|
||||
sender { { id: '3383290475046708' } }
|
||||
recipient { { id: '117172741761305' } }
|
||||
message { { mid: 'm_KXGKDUpO6xbVdAmZFBVpzU1AhKVJdAIUnUH4cwkvb_K3iZsWhowDRyJ_DcowEpJjncaBwdCIoRrixvCbbO1PcA', text: 'facebook message' } }
|
||||
text { 'facebook message' }
|
||||
messaging do
|
||||
{ sender: { id: '3383290475046708' },
|
||||
recipient: { id: '117172741761305' },
|
||||
message: { mid: 'm_KXGKDUpO6xbVdAmZFBVpzU1AhKVJdAIUnUH4cwkvb_K3iZsWhowDRyJ_DcowEpJjncaBwdCIoRrixvCbbO1PcA', text: 'facebook message' } }
|
||||
end
|
||||
|
||||
initialize_with { attributes }
|
||||
end
|
||||
|
||||
27
spec/jobs/webhooks/facebook_events_job_spec.rb
Normal file
27
spec/jobs/webhooks/facebook_events_job_spec.rb
Normal file
@@ -0,0 +1,27 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Webhooks::FacebookEventsJob, type: :job do
|
||||
subject(:job) { described_class.perform_later(params) }
|
||||
|
||||
let!(:params) { { test: 'test' } }
|
||||
|
||||
it 'enqueues the job' do
|
||||
expect { job }.to have_enqueued_job(described_class)
|
||||
.with(params)
|
||||
.on_queue('default')
|
||||
end
|
||||
|
||||
context 'when called with params' do
|
||||
it 'calls MessagePArsed and do message create' do
|
||||
parser = double
|
||||
creator = double
|
||||
allow(::Integrations::Facebook::MessageParser).to receive(:new).and_return(parser)
|
||||
allow(::Integrations::Facebook::MessageCreator).to receive(:new).and_return(creator)
|
||||
allow(creator).to receive(:perform).and_return(true)
|
||||
expect(::Integrations::Facebook::MessageParser).to receive(:new).with(params)
|
||||
expect(::Integrations::Facebook::MessageCreator).to receive(:new).with(parser)
|
||||
expect(creator).to receive(:perform)
|
||||
described_class.perform_now(params)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user