fix: issue with slack job (#7179)

This commit is contained in:
Tejaswini Chile
2023-05-24 20:22:34 +05:30
committed by GitHub
parent bfaca851f1
commit 8e79cf72e1
4 changed files with 14 additions and 15 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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