From 8e79cf72e11b5469b1dfd01a48b033c54d5b6d1d Mon Sep 17 00:00:00 2001 From: Tejaswini Chile Date: Wed, 24 May 2023 20:22:34 +0530 Subject: [PATCH] fix: issue with slack job (#7179) --- app/jobs/hook_job.rb | 7 ++----- app/jobs/send_on_slack_job.rb | 3 +-- spec/jobs/hook_job_spec.rb | 4 ++-- spec/jobs/send_on_slack_job_spec.rb | 15 +++++++++------ 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/app/jobs/hook_job.rb b/app/jobs/hook_job.rb index 15efa40f2..fe615980a 100644 --- a/app/jobs/hook_job.rb +++ b/app/jobs/hook_job.rb @@ -21,12 +21,9 @@ class HookJob < ApplicationJob message = event_data[:message] if message.attachments.blank? - ::SendOnSlackJob.perform_later(message: message, - hook: hook) + ::SendOnSlackJob.perform_later(message, hook) else - ::SendOnSlackJob.set(wait: 2.seconds).perform_later( - message: message, hook: hook - ) + ::SendOnSlackJob.set(wait: 2.seconds).perform_later(message, hook) end end diff --git a/app/jobs/send_on_slack_job.rb b/app/jobs/send_on_slack_job.rb index 521510ff9..e9b84731b 100644 --- a/app/jobs/send_on_slack_job.rb +++ b/app/jobs/send_on_slack_job.rb @@ -1,8 +1,7 @@ class SendOnSlackJob < ApplicationJob queue_as :medium - pattr_initialize [:message!, :hook!] - def perform + def perform(message, hook) Integrations::Slack::SendOnSlackService.new(message: message, hook: hook).perform end end diff --git a/spec/jobs/hook_job_spec.rb b/spec/jobs/hook_job_spec.rb index d3cd46223..2f9a6ba5c 100644 --- a/spec/jobs/hook_job_spec.rb +++ b/spec/jobs/hook_job_spec.rb @@ -25,7 +25,7 @@ RSpec.describe HookJob do it 'calls SendOnSlackJob when its a slack hook' do hook = create(:integrations_hook, app_id: 'slack', account: account) allow(SendOnSlackJob).to receive(:perform_later).and_return(process_service) - expect(SendOnSlackJob).to receive(:perform_later).with(message: event_data[:message], hook: hook) + expect(SendOnSlackJob).to receive(:perform_later).with(event_data[:message], hook) described_class.perform_now(hook, event_name, event_data) end @@ -34,7 +34,7 @@ RSpec.describe HookJob do hook = create(:integrations_hook, app_id: 'slack', account: account) allow(SendOnSlackJob).to receive(:set).with(wait: 2.seconds).and_return(SendOnSlackJob) allow(SendOnSlackJob).to receive(:perform_later).and_return(process_service) - expect(SendOnSlackJob).to receive(:perform_later).with(message: event_data[:message], hook: hook) + expect(SendOnSlackJob).to receive(:perform_later).with(event_data[:message], hook) described_class.perform_now(hook, event_name, event_data) end diff --git a/spec/jobs/send_on_slack_job_spec.rb b/spec/jobs/send_on_slack_job_spec.rb index 59f15a9b5..b7eec9487 100644 --- a/spec/jobs/send_on_slack_job_spec.rb +++ b/spec/jobs/send_on_slack_job_spec.rb @@ -11,22 +11,25 @@ RSpec.describe SendOnSlackJob do let(:process_service) { double } before do + stub_request(:post, 'https://slack.com/api/chat.postMessage') allow(process_service).to receive(:perform) end it 'calls Integrations::Slack::SendOnSlackService when its a slack hook' do hook = create(:integrations_hook, app_id: 'slack', account: account) - allow(Integrations::Slack::SendOnSlackService).to receive(:new).and_return(process_service) - expect(Integrations::Slack::SendOnSlackService).to receive(:new).with(message: event_data[:message], hook: hook) - described_class.perform_now(message: event_data[:message], hook: hook) + slack_service_instance = Integrations::Slack::SendOnSlackService.new(message: event_data[:message], hook: hook) + expect(Integrations::Slack::SendOnSlackService).to receive(:new).with(message: event_data[:message], + hook: hook).and_return(slack_service_instance) + described_class.perform_now(event_data[:message], hook) end it 'calls Integrations::Slack::SendOnSlackService when its a slack hook for template message' do event_data = { message: create(:message, account: account, message_type: :template) } hook = create(:integrations_hook, app_id: 'slack', account: account) - allow(Integrations::Slack::SendOnSlackService).to receive(:new).and_return(process_service) - expect(Integrations::Slack::SendOnSlackService).to receive(:new).with(message: event_data[:message], hook: hook) - described_class.perform_now(message: event_data[:message], hook: hook) + slack_service_instance = Integrations::Slack::SendOnSlackService.new(message: event_data[:message], hook: hook) + expect(Integrations::Slack::SendOnSlackService).to receive(:new).with(message: event_data[:message], + hook: hook).and_return(slack_service_instance) + described_class.perform_now(event_data[:message], hook) end end end