From 9d74cd56730c36a343a955f83c095a9c3d235bf7 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 24 Aug 2018 14:10:16 +0300 Subject: [PATCH] Add tests --- app/models/notification.rb | 10 ++++++++-- test/models/notification_test.rb | 13 +++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) 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