Skip to content

Commit 05ae211

Browse files
committed
feat: Allow to cancel request when partner is deactivated
- modify RequestDestroyService to not return false on validation for deactivated partners - add condition to not send email when partner is deactivated
1 parent 794ef20 commit 05ae211

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

app/services/request_destroy_service.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ def call
1414
request.status = :discarded
1515
request.save!
1616

17-
RequestMailer.request_cancel_partner_notification(request_id: request.id).deliver_later
17+
unless request.partner.deactivated?
18+
RequestMailer.request_cancel_partner_notification(request_id: request.id).deliver_later
19+
end
1820

1921
self
2022
end
@@ -28,8 +30,6 @@ def valid?
2830
errors.add(:base, 'request_id is invalid')
2931
elsif request.discarded_at.present?
3032
errors.add(:base, 'request already discarded')
31-
elsif request.partner.deactivated?
32-
errors.add(:base, 'partner is deactivated')
3333
end
3434

3535
errors.none?

spec/services/request_destroy_service_spec.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,13 @@
5050
let!(:partner) { create(:partner, status: 'deactivated') }
5151
let(:request) { create(:request, partner: partner) }
5252

53-
it 'should have errors' do
54-
expect(subject.errors.full_messages).to eq(['partner is deactivated'])
53+
it 'should update the status column on the request' do
54+
expect { subject }.to change { request.reload.status_discarded? }.from(false).to(true)
55+
end
56+
57+
it 'should not send a email notification to the partner' do
58+
expect(RequestMailer).not_to receive(:request_cancel_partner_notification)
59+
subject
5560
end
5661
end
5762
end

0 commit comments

Comments
 (0)