45 lines
1.1 KiB
Ruby
45 lines
1.1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'rails_helper'
|
||
|
|
||
|
RSpec.describe NotificationRequest do
|
||
|
describe '#reconsider_existence!' do
|
||
|
subject { Fabricate(:notification_request, dismissed: dismissed) }
|
||
|
|
||
|
let(:dismissed) { false }
|
||
|
|
||
|
context 'when there are remaining notifications' do
|
||
|
before do
|
||
|
Fabricate(:notification, account: subject.account, activity: Fabricate(:status, account: subject.from_account))
|
||
|
subject.reconsider_existence!
|
||
|
end
|
||
|
|
||
|
it 'leaves request intact' do
|
||
|
expect(subject.destroyed?).to be false
|
||
|
end
|
||
|
|
||
|
it 'updates notifications_count' do
|
||
|
expect(subject.notifications_count).to eq 1
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'when there are no notifications' do
|
||
|
before do
|
||
|
subject.reconsider_existence!
|
||
|
end
|
||
|
|
||
|
context 'when dismissed' do
|
||
|
let(:dismissed) { true }
|
||
|
|
||
|
it 'leaves request intact' do
|
||
|
expect(subject.destroyed?).to be false
|
||
|
end
|
||
|
end
|
||
|
|
||
|
it 'removes the request' do
|
||
|
expect(subject.destroyed?).to be true
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|