Files
openfoodnetwork/spec/services/orders/customer_cancellation_service_spec.rb
2025-03-21 13:13:52 +01:00

32 lines
968 B
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Orders::CustomerCancellationService do
let(:mail_mock) { double(:mailer_mock, deliver_later: true) }
before do
allow(Spree::OrderMailer).to receive(:cancel_email_for_shop) { mail_mock }
end
context "when an order is cancelled successfully" do
it "notifies the distributor by email" do
order = create(:order, completed_at: Time.zone.now, state: 'complete')
Orders::CustomerCancellationService.new(order).call
expect(Spree::OrderMailer).to have_received(:cancel_email_for_shop).with(order)
expect(mail_mock).to have_received(:deliver_later)
end
end
context "when the order fails to cancel" do
it "doesn't notify the distributor by email" do
order = create(:order, state: 'canceled')
Orders::CustomerCancellationService.new(order).call
expect(Spree::OrderMailer).not_to have_received(:cancel_email_for_shop)
end
end
end