diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index d44455d53b..00dfb64d4f 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -553,10 +553,6 @@ module Spree line_item_adjustments.destroy_all end - def has_step?(step) - checkout_steps.include?(step) - end - def state_changed(name) state = "#{name}_state" return unless persisted? @@ -803,7 +799,6 @@ module Spree end def has_available_shipment - return unless has_step?("delivery") return unless address? return unless ship_address&.valid? # errors.add(:base, :no_shipping_methods_available) if available_shipping_methods.empty? diff --git a/app/models/spree/order/checkout.rb b/app/models/spree/order/checkout.rb index ffecf63f23..82efef81e7 100644 --- a/app/models/spree/order/checkout.rb +++ b/app/models/spree/order/checkout.rb @@ -9,7 +9,6 @@ module Spree class_attribute :previous_states class_attribute :checkout_flow class_attribute :checkout_steps - class_attribute :removed_transitions def self.checkout_flow(&block) if block_given? @@ -24,7 +23,6 @@ module Spree self.checkout_steps = {} self.next_event_transitions = [] self.previous_states = [:cart] - self.removed_transitions = [] # Build the checkout flow using the checkout_flow defined either # within the Order class, or a decorator for that class. @@ -95,43 +93,6 @@ module Spree end end - def self.insert_checkout_step(name, options = {}) - before = options.delete(:before) - after = options.delete(:after) unless before - after = checkout_steps.keys.last unless before || after - - cloned_steps = checkout_steps.clone - cloned_removed_transitions = removed_transitions.clone - checkout_flow do - cloned_steps.each_pair do |key, value| - go_to_state(name, options) if key == before - go_to_state(key, value) - go_to_state(name, options) if key == after - end - cloned_removed_transitions.each do |transition| - remove_transition(transition) - end - end - end - - def self.remove_checkout_step(name) - cloned_steps = checkout_steps.clone - cloned_removed_transitions = removed_transitions.clone - checkout_flow do - cloned_steps.each_pair do |key, value| - go_to_state(key, value) unless key == name - end - cloned_removed_transitions.each do |transition| - remove_transition(transition) - end - end - end - - def self.remove_transition(options = {}) - removed_transitions << options - next_event_transitions.delete(find_transition(options)) - end - def self.find_transition(options = {}) return nil if options.nil? || !options.include?(:from) || !options.include?(:to) @@ -173,10 +134,6 @@ module Spree checkout_steps.index(step) end - def self.removed_transitions - @removed_transitions ||= [] - end - def can_go_to_state?(state) return false unless self.state.present? && checkout_step?(state) && diff --git a/spec/models/spree/order/checkout_spec.rb b/spec/models/spree/order/checkout_spec.rb index e5bcea4a2e..55cdb4c301 100644 --- a/spec/models/spree/order/checkout_spec.rb +++ b/spec/models/spree/order/checkout_spec.rb @@ -30,16 +30,6 @@ describe Spree::Order::Checkout do expect(Spree::Order.find_transition({ foo: :bar, baz: :dog })).to be_falsy end - it '.remove_transition' do - options = { from: transitions.first.keys.first, to: transitions.first.values.first } - allow(Spree::Order).to receive(:next_event_transition).and_return([options]) - expect(Spree::Order.remove_transition(options)).to be_truthy - end - - it '.remove_transition when contract was broken' do - expect(Spree::Order.remove_transition(nil)).to be_falsy - end - context "#checkout_steps" do context "when payment not required" do before { allow(order).to receive_messages payment_required?: false } @@ -232,73 +222,6 @@ describe Spree::Order::Checkout do end end - context "insert checkout step" do - before do - @old_checkout_flow = Spree::Order.checkout_flow - Spree::Order.class_eval do - insert_checkout_step :new_step, before: :address - end - end - - after do - Spree::Order.checkout_flow(&@old_checkout_flow) - end - - it "should maintain removed transitions" do - transition = Spree::Order.find_transition(from: :delivery, to: :confirm) - expect(transition).to be_nil - end - - context "before" do - before do - Spree::Order.class_eval do - insert_checkout_step :before_address, before: :address - end - end - - specify do - order = Spree::Order.new - expect(order.checkout_steps).to eq %w(new_step before_address address delivery complete) - end - end - - context "after" do - before do - Spree::Order.class_eval do - insert_checkout_step :after_address, after: :address - end - end - - specify do - order = Spree::Order.new - expect(order.checkout_steps).to eq %w(new_step address after_address delivery complete) - end - end - end - - context "remove checkout step" do - before do - @old_checkout_flow = Spree::Order.checkout_flow - Spree::Order.class_eval do - remove_checkout_step :address - end - end - - after do - Spree::Order.checkout_flow(&@old_checkout_flow) - end - - it "should maintain removed transitions" do - transition = Spree::Order.find_transition(from: :delivery, to: :confirm) - expect(transition).to be_nil - end - - specify do - order = Spree::Order.new - expect(order.checkout_steps).to eq %w(delivery complete) - end - end - describe 'event :restart_checkout' do let(:order) { build_stubbed(:order) }