DEV: Allow specifying if a notification is high_priority on create (#9660)

This allows for special cases where we may not want a certain notification type to ALWAYS be high priority (e.g. a topic timer).
This commit is contained in:
Martin Brennan 2020-05-07 14:35:32 +10:00 committed by GitHub
parent be48e503fd
commit 37be2958f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 1 deletions

View File

@ -45,7 +45,9 @@ class Notification < ActiveRecord::Base
end
before_create do
self.high_priority = Notification.high_priority_types.include?(self.notification_type)
# if we have manually set the notification to high_priority on create then
# make sure that is respected
self.high_priority = self.high_priority || Notification.high_priority_types.include?(self.notification_type)
end
def self.purge_old!

View File

@ -87,6 +87,24 @@ describe Notification do
end
describe 'high priority creation' do
fab!(:user) { Fabricate(:user) }
it "automatically marks the notification as high priority if it is a high priority type" do
notif = Notification.create(user: user, notification_type: Notification.types[:bookmark_reminder], data: {})
expect(notif.high_priority).to eq(true)
notif = Notification.create(user: user, notification_type: Notification.types[:private_message], data: {})
expect(notif.high_priority).to eq(true)
notif = Notification.create(user: user, notification_type: Notification.types[:liked], data: {})
expect(notif.high_priority).to eq(false)
end
it "allows manually specifying a notification is high priority" do
notif = Notification.create(user: user, notification_type: Notification.types[:liked], data: {}, high_priority: true)
expect(notif.high_priority).to eq(true)
end
end
describe 'unread counts' do
fab!(:user) { Fabricate(:user) }