Add spec for rescuing order saving shipment

This commit is contained in:
Maikel Linke
2019-06-26 11:32:01 +10:00
parent 980b4a86ab
commit 5bbd63bcd8

View File

@@ -756,6 +756,24 @@ describe Spree::Order do
expect { order.next! }.to change { order.state }.from("delivery").to("payment")
end
it "advances to complete state despite error" do
advance_to_delivery_state(order)
# advance to payment state
order.next!
create(:payment, order: order)
# https://github.com/openfoodfoundation/openfoodnetwork/issues/3924
observed_error = ActiveRecord::RecordNotUnique.new(
"PG::UniqueViolation",
StandardError.new
)
expect(order.shipment).to receive(:save).and_call_original
expect(order.shipment).to receive(:save).and_call_original
expect(order.shipment).to receive(:save).and_raise(observed_error)
expect { order.next! }.to change { order.state }.from("payment").to("complete")
end
end
context "when the order is a subscription" do