diff --git a/app/models/notification.rb b/app/models/notification.rb index df2dc1a9c..c8b46c17e 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -2,12 +2,12 @@ class Notification < ActiveRecord::Base include Versions # version/notification_version.rb belongs_to :registrar, required: true - before_create -> { self.read = false; true } - scope :unread, -> { where(read: false) } validates :text, presence: true + after_initialize :set_defaults + def mark_as_read self.read = true save @@ -17,4 +17,10 @@ class Notification < ActiveRecord::Base def name "-" end + + private + + def set_defaults + self.read = false if read.nil? + end end diff --git a/test/models/notification_test.rb b/test/models/notification_test.rb index da8f3bdec..96379d77f 100644 --- a/test/models/notification_test.rb +++ b/test/models/notification_test.rb @@ -19,6 +19,19 @@ class NotificationTest < ActiveSupport::TestCase assert @notification.invalid? end + def test_unread_by_default + notification = Notification.new(registrar: registrars(:bestnames), text: 'test') + assert_not notification.read? + + notification.save! + assert_not notification.read? + end + + def test_honor_given_read_state + notification = Notification.new(read: true) + assert notification.read? + end + def test_mark_as_read @notification.mark_as_read @notification.reload