diff --git a/app/models/inbox_member.rb b/app/models/inbox_member.rb index d0b5640d8..38970789c 100644 --- a/app/models/inbox_member.rb +++ b/app/models/inbox_member.rb @@ -32,6 +32,6 @@ class InboxMember < ApplicationRecord end def remove_agent_from_round_robin - ::RoundRobin::ManageService.new(inbox: inbox).remove_agent_from_queue(user_id) + ::RoundRobin::ManageService.new(inbox: inbox).remove_agent_from_queue(user_id) if inbox.present? end end diff --git a/lib/integrations/slack/incoming_message_builder.rb b/lib/integrations/slack/incoming_message_builder.rb index 66d96be4a..b7c235b35 100644 --- a/lib/integrations/slack/incoming_message_builder.rb +++ b/lib/integrations/slack/incoming_message_builder.rb @@ -37,7 +37,7 @@ class Integrations::Slack::IncomingMessageBuilder if message.present? SUPPORTED_MESSAGE_TYPES.include?(message[:type]) else - params[:event][:files].any? + params.dig(:event, :files).any? end end diff --git a/spec/models/inbox_member_spec.rb b/spec/models/inbox_member_spec.rb new file mode 100644 index 000000000..389fe75cb --- /dev/null +++ b/spec/models/inbox_member_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe InboxMember do + include ActiveJob::TestHelper + + describe '#DestroyAssociationAsyncJob' do + let(:inbox_member) { create(:inbox_member) } + + # ref: https://github.com/chatwoot/chatwoot/issues/4616 + context 'when parent inbox is destroyed' do + it 'enques and processes DestroyAssociationAsyncJob' do + perform_enqueued_jobs do + inbox_member.inbox.destroy! + end + end + end + end +end