36 lines
1.2 KiB
Ruby
36 lines
1.2 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe Tiktok::ReadStatusService do
|
|
let(:account) { create(:account) }
|
|
let(:channel) { create(:channel_tiktok, account: account, business_id: 'biz-123') }
|
|
let(:inbox) { channel.inbox }
|
|
let(:contact) { create(:contact, account: account) }
|
|
let(:contact_inbox) { create(:contact_inbox, inbox: inbox, contact: contact, source_id: 'tt-conv-1') }
|
|
let!(:conversation) do
|
|
create(
|
|
:conversation,
|
|
account: account,
|
|
inbox: inbox,
|
|
contact: contact,
|
|
contact_inbox: contact_inbox,
|
|
additional_attributes: { conversation_id: 'tt-conv-1' }
|
|
)
|
|
end
|
|
|
|
describe '#perform' do
|
|
it 'enqueues Conversations::UpdateMessageStatusJob for inbound read events' do
|
|
allow(Conversations::UpdateMessageStatusJob).to receive(:perform_later)
|
|
|
|
content = {
|
|
conversation_id: 'tt-conv-1',
|
|
read: { last_read_timestamp: 1_700_000_000_000 },
|
|
from_user: { id: 'user-1' }
|
|
}.deep_symbolize_keys
|
|
|
|
described_class.new(channel: channel, content: content).perform
|
|
|
|
expect(Conversations::UpdateMessageStatusJob).to have_received(:perform_later).with(conversation.id, kind_of(Time))
|
|
end
|
|
end
|
|
end
|