diff --git a/app/models/spree/order/checkout.rb b/app/models/spree/order/checkout.rb index 9ffdebe724..123b929851 100644 --- a/app/models/spree/order/checkout.rb +++ b/app/models/spree/order/checkout.rb @@ -77,9 +77,9 @@ module Spree before_transition to: :delivery, do: :create_proposed_shipments before_transition to: :delivery, do: :ensure_available_shipping_rates + before_transition to: :payment, do: :create_tax_charge! after_transition to: :complete, do: :finalize! - after_transition to: :delivery, do: :create_tax_charge! after_transition to: :resumed, do: :after_resume after_transition to: :canceled, do: :after_cancel after_transition to: :payment, do: :charge_shipping_and_payment_fees! diff --git a/spec/models/spree/order/state_machine_spec.rb b/spec/models/spree/order/state_machine_spec.rb index 27d4e48c95..f455c36e72 100644 --- a/spec/models/spree/order/state_machine_spec.rb +++ b/spec/models/spree/order/state_machine_spec.rb @@ -48,16 +48,14 @@ describe Spree::Order do end end - context "when current state is address" do + context "when current state is delivery" do before do allow(order).to receive(:ensure_available_shipping_rates) - order.state = "address" + order.state = "delivery" end - it "adjusts tax rates when transitioning to delivery" do - # Once because the record is being saved - # Twice because it is transitioning to the delivery state - expect(Spree::TaxRate).to receive(:adjust).twice + it "adjusts tax rates when transitioning to payment" do + expect(Spree::TaxRate).to receive(:adjust) order.next! end end