From d5b20d5446a8b391e95197671b1be0cc9b7e82cb Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Sun, 16 May 2021 10:06:29 +0100 Subject: [PATCH] Add specs for Order#ensure_updated_shipments --- spec/models/spree/order_spec.rb | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index 842e7a8340..67c6306680 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -1313,4 +1313,36 @@ describe Spree::Order do end end end + + describe "#ensure_updated_shipments" do + before { Spree::Shipment.create!(order: order) } + + context "when the order is not completed" do + it "destroys current shipments" do + order.ensure_updated_shipments + expect(order.shipments).to be_empty + end + + it "puts order back in address state" do + order.ensure_updated_shipments + expect(order.state).to eq "address" + end + end + + context "when the order is completed" do + before do + allow(order).to receive(:completed?) { true } + end + + it "does not change the shipments" do + expect { + order.ensure_updated_shipments + }.not_to change { order.shipments } + + expect { + order.ensure_updated_shipments + }.not_to change { order.state } + end + end + end end