2015-10-11 10:41:23 +01:00
require 'rails_helper'
2013-02-05 14:16:51 -05:00
describe NotificationsController do
context 'when logged in' do
let! ( :user ) { log_in }
2014-09-02 18:32:27 -07:00
it 'should succeed for recent' do
2015-05-05 13:44:19 -04:00
xhr :get , :index , recent : true
2015-01-09 14:04:02 -03:00
expect ( response ) . to be_success
2014-09-02 18:32:27 -07:00
end
it 'should succeed for history' do
2015-05-05 13:44:19 -04:00
xhr :get , :index
2015-01-09 14:04:02 -03:00
expect ( response ) . to be_success
2013-02-05 14:16:51 -05:00
end
2015-05-05 13:44:19 -04:00
it 'should succeed' do
xhr :put , :mark_read
2015-01-09 14:04:02 -03:00
expect ( response ) . to be_success
2014-10-13 06:26:30 -04:00
end
2014-06-07 15:47:45 +05:30
it 'should mark notifications as viewed' do
notification = Fabricate ( :notification , user : user )
2015-01-09 14:04:02 -03:00
expect ( user . reload . unread_notifications ) . to eq ( 1 )
expect ( user . reload . total_unread_notifications ) . to eq ( 1 )
2015-05-05 13:44:19 -04:00
xhr :get , :index , recent : true
2015-01-09 14:04:02 -03:00
expect ( user . reload . unread_notifications ) . to eq ( 0 )
expect ( user . reload . total_unread_notifications ) . to eq ( 1 )
2014-06-07 15:47:45 +05:30
end
it 'should not mark notifications as viewed if silent param is present' do
notification = Fabricate ( :notification , user : user )
2015-01-09 14:04:02 -03:00
expect ( user . reload . unread_notifications ) . to eq ( 1 )
expect ( user . reload . total_unread_notifications ) . to eq ( 1 )
2015-05-05 13:44:19 -04:00
xhr :get , :index , recent : true , silent : true
2015-01-09 14:04:02 -03:00
expect ( user . reload . unread_notifications ) . to eq ( 1 )
expect ( user . reload . total_unread_notifications ) . to eq ( 1 )
2014-10-13 06:26:30 -04:00
end
it " updates the `read` status " do
notification = Fabricate ( :notification , user : user )
2015-01-09 14:04:02 -03:00
expect ( user . reload . unread_notifications ) . to eq ( 1 )
expect ( user . reload . total_unread_notifications ) . to eq ( 1 )
2015-05-05 13:44:19 -04:00
xhr :put , :mark_read
2014-10-13 06:26:30 -04:00
user . reload
2015-01-09 14:04:02 -03:00
expect ( user . reload . unread_notifications ) . to eq ( 0 )
expect ( user . reload . total_unread_notifications ) . to eq ( 0 )
2014-06-07 15:47:45 +05:30
end
2013-02-05 14:16:51 -05:00
end
context 'when not logged in' do
it 'should raise an error' do
2015-05-05 13:44:19 -04:00
expect { xhr :get , :index , recent : true } . to raise_error ( Discourse :: NotLoggedIn )
2013-02-25 19:42:20 +03:00
end
2013-02-05 14:16:51 -05:00
end
end