0
0
Fork 0

Keep notification when muting_notifications is true (#7311)

* Keep notification when muting_notifications is true

* Retrun mute object

* Fix test
This commit is contained in:
abcang 2018-05-02 23:14:51 +09:00 committed by Eugen Rochko
parent d0cdd5cf94
commit 71a7cea73f
4 changed files with 34 additions and 39 deletions

View file

@ -108,13 +108,15 @@ describe AccountInteractions do
end
describe '#mute!' do
subject { account.mute!(target_account, notifications: arg_notifications) }
context 'Mute does not exist yet' do
context 'arg :notifications is nil' do
let(:arg_notifications) { nil }
it 'creates Mute, and returns nil' do
it 'creates Mute, and returns Mute' do
expect do
expect(account.mute!(target_account, notifications: arg_notifications)).to be nil
expect(subject).to be_kind_of Mute
end.to change { account.mute_relationships.count }.by 1
end
end
@ -122,9 +124,9 @@ describe AccountInteractions do
context 'arg :notifications is false' do
let(:arg_notifications) { false }
it 'creates Mute, and returns nil' do
it 'creates Mute, and returns Mute' do
expect do
expect(account.mute!(target_account, notifications: arg_notifications)).to be nil
expect(subject).to be_kind_of Mute
end.to change { account.mute_relationships.count }.by 1
end
end
@ -132,9 +134,9 @@ describe AccountInteractions do
context 'arg :notifications is true' do
let(:arg_notifications) { true }
it 'creates Mute, and returns nil' do
it 'creates Mute, and returns Mute' do
expect do
expect(account.mute!(target_account, notifications: arg_notifications)).to be nil
expect(subject).to be_kind_of Mute
end.to change { account.mute_relationships.count }.by 1
end
end
@ -158,36 +160,30 @@ describe AccountInteractions do
context 'arg :notifications is nil' do
let(:arg_notifications) { nil }
it 'returns nil without updating mute.hide_notifications' do
it 'returns Mute without updating mute.hide_notifications' do
expect do
expect(account.mute!(target_account, notifications: arg_notifications)).to be nil
mute = account.mute_relationships.find_by(target_account: target_account)
expect(mute.hide_notifications?).to be true
end
expect(subject).to be_kind_of Mute
end.not_to change { mute.reload.hide_notifications? }.from(true)
end
end
context 'arg :notifications is false' do
let(:arg_notifications) { false }
it 'returns true, and updates mute.hide_notifications false' do
it 'returns Mute, and updates mute.hide_notifications false' do
expect do
expect(account.mute!(target_account, notifications: arg_notifications)).to be true
mute = account.mute_relationships.find_by(target_account: target_account)
expect(mute.hide_notifications?).to be false
end
expect(subject).to be_kind_of Mute
end.to change { mute.reload.hide_notifications? }.from(true).to(false)
end
end
context 'arg :notifications is true' do
let(:arg_notifications) { true }
it 'returns nil without updating mute.hide_notifications' do
it 'returns Mute without updating mute.hide_notifications' do
expect do
expect(account.mute!(target_account, notifications: arg_notifications)).to be nil
mute = account.mute_relationships.find_by(target_account: target_account)
expect(mute.hide_notifications?).to be true
end
expect(subject).to be_kind_of Mute
end.not_to change { mute.reload.hide_notifications? }.from(true)
end
end
end
@ -198,36 +194,30 @@ describe AccountInteractions do
context 'arg :notifications is nil' do
let(:arg_notifications) { nil }
it 'returns true, and updates mute.hide_notifications true' do
it 'returns Mute, and updates mute.hide_notifications true' do
expect do
expect(account.mute!(target_account, notifications: arg_notifications)).to be true
mute = account.mute_relationships.find_by(target_account: target_account)
expect(mute.hide_notifications?).to be true
end
expect(subject).to be_kind_of Mute
end.to change { mute.reload.hide_notifications? }.from(false).to(true)
end
end
context 'arg :notifications is false' do
let(:arg_notifications) { false }
it 'returns nil without updating mute.hide_notifications' do
it 'returns Mute without updating mute.hide_notifications' do
expect do
expect(account.mute!(target_account, notifications: arg_notifications)).to be nil
mute = account.mute_relationships.find_by(target_account: target_account)
expect(mute.hide_notifications?).to be false
end
expect(subject).to be_kind_of Mute
end.not_to change { mute.reload.hide_notifications? }.from(false)
end
end
context 'arg :notifications is true' do
let(:arg_notifications) { true }
it 'returns true, and updates mute.hide_notifications true' do
it 'returns Mute, and updates mute.hide_notifications true' do
expect do
expect(account.mute!(target_account, notifications: arg_notifications)).to be true
mute = account.mute_relationships.find_by(target_account: target_account)
expect(mute.hide_notifications?).to be true
end
expect(subject).to be_kind_of Mute
end.to change { mute.reload.hide_notifications? }.from(false).to(true)
end
end
end