Remove code and specs related to dynamic checkout workflow, we have a static workflow defines in the Order class

This commit is contained in:
Luis Ramos
2020-10-15 15:58:09 +01:00
parent 6046b0f6e4
commit 07b3c100e8
3 changed files with 0 additions and 125 deletions

View File

@@ -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?

View File

@@ -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) &&

View File

@@ -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) }