From 38ba7a9eca56f5d36f6543bccf1d12b877ba76f0 Mon Sep 17 00:00:00 2001 From: Sojan Jose Date: Wed, 22 Oct 2025 18:14:57 -0700 Subject: [PATCH] Fix Captain pending conversations resolution job and spec --- ...nding_conversations_resolution_job_spec.rb | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/spec/enterprise/jobs/captain/inbox_pending_conversations_resolution_job_spec.rb b/spec/enterprise/jobs/captain/inbox_pending_conversations_resolution_job_spec.rb index 40f1ea294..1a8a5a342 100644 --- a/spec/enterprise/jobs/captain/inbox_pending_conversations_resolution_job_spec.rb +++ b/spec/enterprise/jobs/captain/inbox_pending_conversations_resolution_job_spec.rb @@ -1,8 +1,6 @@ require 'rails_helper' RSpec.describe Captain::InboxPendingConversationsResolutionJob, type: :job do - include ActiveJob::TestHelper - let!(:inbox) { create(:inbox) } let!(:resolvable_pending_conversation) { create(:conversation, inbox: inbox, last_activity_at: 2.hours.ago, status: :pending) } @@ -14,6 +12,7 @@ RSpec.describe Captain::InboxPendingConversationsResolutionJob, type: :job do before do create(:captain_inbox, inbox: inbox, captain_assistant: captain_assistant) stub_const('Limits::BULK_ACTIONS_LIMIT', 2) + inbox.reload end it 'queues the job' do @@ -22,7 +21,7 @@ RSpec.describe Captain::InboxPendingConversationsResolutionJob, type: :job do end it 'resolves only the eligible pending conversations' do - perform_enqueued_jobs { described_class.perform_later(inbox) } + described_class.perform_now(inbox) expect(resolvable_pending_conversation.reload.status).to eq('resolved') expect(recent_pending_conversation.reload.status).to eq('pending') @@ -34,7 +33,7 @@ RSpec.describe Captain::InboxPendingConversationsResolutionJob, type: :job do captain_assistant.update!(config: { 'resolution_message' => custom_message }) expect do - perform_enqueued_jobs { described_class.perform_later(inbox) } + described_class.perform_now(inbox) end.to change { resolvable_pending_conversation.messages.outgoing.reload.count }.by(1) outgoing_message = resolvable_pending_conversation.messages.outgoing.last @@ -44,7 +43,7 @@ RSpec.describe Captain::InboxPendingConversationsResolutionJob, type: :job do it 'creates an outgoing message with default auto resolution message if not configured' do captain_assistant.update!(config: {}) - perform_enqueued_jobs { described_class.perform_later(inbox) } + described_class.perform_now(inbox) outgoing_message = resolvable_pending_conversation.messages.outgoing.last expect(outgoing_message.content).to eq( I18n.t('conversations.activity.auto_resolution_message') @@ -52,11 +51,17 @@ RSpec.describe Captain::InboxPendingConversationsResolutionJob, type: :job do end it 'adds the correct activity message after resolution by Captain' do - perform_enqueued_jobs { described_class.perform_later(inbox) } - activity_message = resolvable_pending_conversation.messages.activity.last - expect(activity_message).not_to be_nil - expect(activity_message.content).to eq( - I18n.t('conversations.activity.captain.resolved', user_name: captain_assistant.name) - ) + described_class.perform_now(inbox) + expected_content = I18n.t('conversations.activity.captain.resolved', user_name: captain_assistant.name) + expect(Conversations::ActivityMessageJob) + .to have_been_enqueued.with( + resolvable_pending_conversation, + { + account_id: resolvable_pending_conversation.account_id, + inbox_id: resolvable_pending_conversation.inbox_id, + message_type: :activity, + content: expected_content + } + ) end end