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
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
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
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
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