fix: attachment rendering if the message content is empty in private note (#1831)

Fixes #1830
This commit is contained in:
Muhsin Keloth 2021-02-25 09:10:03 -08:00 committed by GitHub
parent 00954aa16f
commit aab70bf1f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 5 deletions

View file

@ -56,6 +56,8 @@ class NotificationListener < BaseListener
def generate_notifications_for_mentions(message, account) def generate_notifications_for_mentions(message, account)
return unless message.private? return unless message.private?
return if message.content.blank?
mentioned_ids = message.content.scan(%r{\(mention://(user|team)/(\d+)/(.+)\)}).map(&:second).uniq mentioned_ids = message.content.scan(%r{\(mention://(user|team)/(\d+)/(.+)\)}).map(&:second).uniq
return if mentioned_ids.blank? return if mentioned_ids.blank?

View file

@ -47,13 +47,15 @@ describe NotificationListener do
describe 'message_created' do describe 'message_created' do
let(:event_name) { :'message.created' } let(:event_name) { :'message.created' }
before do
notification_setting = agent_with_notification.notification_settings.find_by(account_id: account.id)
notification_setting.selected_email_flags = [:email_conversation_mention]
notification_setting.selected_push_flags = []
notification_setting.save!
end
context 'when message contains mention' do context 'when message contains mention' do
it 'creates notifications for inbox member who was mentioned' do it 'creates notifications for inbox member who was mentioned' do
notification_setting = agent_with_notification.notification_settings.find_by(account_id: account.id)
notification_setting.selected_email_flags = [:email_conversation_mention]
notification_setting.selected_push_flags = []
notification_setting.save!
builder = double builder = double
allow(NotificationBuilder).to receive(:new).and_return(builder) allow(NotificationBuilder).to receive(:new).and_return(builder)
allow(builder).to receive(:perform) allow(builder).to receive(:perform)
@ -78,5 +80,28 @@ describe NotificationListener do
primary_actor: message) primary_actor: message)
end end
end end
context 'when message content is empty' do
it 'creates notifications' do
builder = double
allow(NotificationBuilder).to receive(:new).and_return(builder)
allow(builder).to receive(:perform)
create(:inbox_member, user: agent_with_notification, inbox: inbox)
conversation.reload
message = build(
:message,
conversation: conversation,
account: account,
content: nil,
private: true
)
event = Events::Base.new(event_name, Time.zone.now, message: message)
# want to validate message_created doesnt throw an error
expect(listener.message_created(event)).to eq nil
end
end
end end
end end