From d03924b84670de2b7c9000cd59697e591e1bc89a Mon Sep 17 00:00:00 2001 From: Sojan Jose Date: Mon, 5 Jun 2023 20:27:28 +0530 Subject: [PATCH] feat: Enable sending template messages in webhooks (#7252) fixes: https://github.com/chatwoot/chatwoot/issues/5291 --- app/models/concerns/message_filter_helpers.rb | 2 +- spec/models/message_spec.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/message_filter_helpers.rb b/app/models/concerns/message_filter_helpers.rb index 6f5a758f0..38124f347 100644 --- a/app/models/concerns/message_filter_helpers.rb +++ b/app/models/concerns/message_filter_helpers.rb @@ -6,7 +6,7 @@ module MessageFilterHelpers end def webhook_sendable? - incoming? || outgoing? + incoming? || outgoing? || template? end def slack_hook_sendable? diff --git a/spec/models/message_spec.rb b/spec/models/message_spec.rb index e44627666..f7dbc9cf8 100644 --- a/spec/models/message_spec.rb +++ b/spec/models/message_spec.rb @@ -31,6 +31,22 @@ RSpec.describe Message do it_behaves_like 'liqudable' end + describe 'message_filter_helpers' do + context 'when webhook_sendable?' do + [ + { type: :incoming, expected: true }, + { type: :outgoing, expected: true }, + { type: :template, expected: true }, + { type: :activity, expected: false } + ].each do |scenario| + it "returns #{scenario[:expected]} for #{scenario[:type]} message" do + message = create(:message, message_type: scenario[:type]) + expect(message.webhook_sendable?).to eq(scenario[:expected]) + end + end + end + end + describe 'Check if message is a valid first reply' do it 'is valid if it is outgoing' do outgoing_message = create(:message, message_type: :outgoing)