diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 63d8cd630c..ac9a7b48b9 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -283,21 +283,6 @@ Style/MissingRespondToMissing: - 'app/models/spree/gateway.rb' - 'app/models/spree/preferences/configuration.rb' -# Offense count: 22 -# This cop supports safe autocorrection (--autocorrect). -Style/NestedModifier: - Exclude: - - 'spec/controllers/admin/subscriptions_controller_spec.rb' - - 'spec/controllers/line_items_controller_spec.rb' - - 'spec/controllers/spree/admin/orders_controller_spec.rb' - - 'spec/controllers/spree/orders_controller_spec.rb' - - 'spec/factories/order_factory.rb' - - 'spec/models/proxy_order_spec.rb' - - 'spec/models/spree/line_item_spec.rb' - - 'spec/services/place_proxy_order_spec.rb' - - 'spec/system/admin/payments_stripe_spec.rb' - - 'spec/system/admin/reports_spec.rb' - # Offense count: 38 Style/OpenStructUse: Exclude: diff --git a/spec/controllers/admin/subscriptions_controller_spec.rb b/spec/controllers/admin/subscriptions_controller_spec.rb index ceb18d03df..6ead659d75 100644 --- a/spec/controllers/admin/subscriptions_controller_spec.rb +++ b/spec/controllers/admin/subscriptions_controller_spec.rb @@ -458,7 +458,7 @@ RSpec.describe Admin::SubscriptionsController do } let!(:order) { proxy_order.initialise_order! } - before { break unless order.next! while !order.completed? } + before { Orders::WorkflowService.new(order).complete! } context "when no 'open_orders' directive has been provided" do it "renders an error, asking what to do" do @@ -562,7 +562,7 @@ RSpec.describe Admin::SubscriptionsController do } let!(:order) { proxy_order.initialise_order! } - before { break unless order.next! while !order.completed? } + before { Orders::WorkflowService.new(order).complete! } context "when no 'open_orders' directive has been provided" do it "renders an error, asking what to do" do @@ -668,7 +668,7 @@ RSpec.describe Admin::SubscriptionsController do } let!(:order) { proxy_order.initialise_order! } - before { break unless order.next! while !order.completed? } + before { Orders::WorkflowService.new(order).complete! } context "when no associated orders are 'canceled'" do it 'renders the unpaused subscription as json, leaves the order untouched' do diff --git a/spec/controllers/line_items_controller_spec.rb b/spec/controllers/line_items_controller_spec.rb index 42ab3ba13a..13b0b5cda6 100644 --- a/spec/controllers/line_items_controller_spec.rb +++ b/spec/controllers/line_items_controller_spec.rb @@ -11,7 +11,7 @@ RSpec.describe LineItemsController do let!(:completed_order) do order = create(:completed_order_with_totals, user:, distributor:, order_cycle:, line_items_count: 1) - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! order end @@ -35,7 +35,7 @@ RSpec.describe LineItemsController do let(:item) do order = create(:completed_order_with_totals) item = create(:line_item, order:) - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! item end @@ -177,7 +177,7 @@ RSpec.describe LineItemsController do order_cycle:, line_items_count: 2) order.reload.line_items.first.update(variant_id: variant1.id) order.line_items.last.update(variant_id: variant2.id) - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! order.recreate_all_fees! order end diff --git a/spec/controllers/spree/admin/orders_controller_spec.rb b/spec/controllers/spree/admin/orders_controller_spec.rb index 34af692760..3b9db3a69a 100644 --- a/spec/controllers/spree/admin/orders_controller_spec.rb +++ b/spec/controllers/spree/admin/orders_controller_spec.rb @@ -85,7 +85,7 @@ RSpec.describe Spree::Admin::OrdersController do order_cycle:) order.reload.line_items.first.update(variant_id: variant1.id) order.line_items.last.update(variant_id: variant2.id) - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! order.recreate_all_fees! order end diff --git a/spec/controllers/spree/orders_controller_spec.rb b/spec/controllers/spree/orders_controller_spec.rb index 95c56dc658..8c5f1c82f3 100644 --- a/spec/controllers/spree/orders_controller_spec.rb +++ b/spec/controllers/spree/orders_controller_spec.rb @@ -293,7 +293,7 @@ RSpec.describe Spree::OrdersController do order_cycle:) order.reload.line_items.first.update(variant_id: variant1.id) order.reload.line_items.last.update(variant_id: variant2.id) - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! order.recreate_all_fees! order end diff --git a/spec/factories/order_factory.rb b/spec/factories/order_factory.rb index b9726a3614..28abe6dd09 100644 --- a/spec/factories/order_factory.rb +++ b/spec/factories/order_factory.rb @@ -128,10 +128,12 @@ FactoryBot.define do payment_method: evaluator.payment_method) order.recreate_all_fees! order.ship_address = evaluator.ship_address - break unless a = order.next! while !order.delivery? + while !order.delivery? + break unless a = order.next! + end order.select_shipping_method(evaluator.shipping_method.id) - break unless a = order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! end end end @@ -164,7 +166,7 @@ FactoryBot.define do create(:payment, state: "checkout", order:, amount: order.total, payment_method: evaluator.payment_method) order.ship_address = evaluator.ship_address - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! order.update_columns( completed_at: evaluator.completed_at, @@ -260,7 +262,7 @@ FactoryBot.define do tax_category: evaluator.shipping_tax_category) order.reload - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! order.reload end end diff --git a/spec/models/proxy_order_spec.rb b/spec/models/proxy_order_spec.rb index dbec3b6833..0da3098b00 100644 --- a/spec/models/proxy_order_spec.rb +++ b/spec/models/proxy_order_spec.rb @@ -116,7 +116,7 @@ RSpec.describe ProxyOrder do allow(Spree::OrderMailer).to receive(:cancel_email) { double(:email, deliver_later: true) } - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! order.cancel order.reload end @@ -130,7 +130,7 @@ RSpec.describe ProxyOrder do end context "and the order has not been cancelled" do - before { break unless order.next! while !order.completed? } + before { Orders::WorkflowService.new(order).complete! } it "returns true and clears canceled_at" do expect(proxy_order.resume).to be true @@ -159,7 +159,7 @@ RSpec.describe ProxyOrder do allow(Spree::OrderMailer).to receive(:cancel_email) { double(:email, deliver_later: true) } - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! order.cancel end @@ -172,7 +172,7 @@ RSpec.describe ProxyOrder do end context "and the order has not been cancelled" do - before { break unless order.next! while !order.completed? } + before { Orders::WorkflowService.new(order).complete! } it "returns false and does nothing" do expect(proxy_order.resume).to eq false diff --git a/spec/models/spree/line_item_spec.rb b/spec/models/spree/line_item_spec.rb index 37aeaa6fc1..7c69728987 100644 --- a/spec/models/spree/line_item_spec.rb +++ b/spec/models/spree/line_item_spec.rb @@ -300,7 +300,7 @@ module Spree order.reload order.update_totals order.payments << create(:payment, amount: order.total) - break unless order.next! until order.completed? + Orders::WorkflowService.new(order).complete! order.payment_state = 'paid' order.select_shipping_method(shipping_method.id) order.shipment.update!(order) diff --git a/spec/services/place_proxy_order_spec.rb b/spec/services/place_proxy_order_spec.rb index 4fd895d8d9..66b36eba40 100644 --- a/spec/services/place_proxy_order_spec.rb +++ b/spec/services/place_proxy_order_spec.rb @@ -52,7 +52,7 @@ RSpec.describe PlaceProxyOrder do before do proxy_order.initialise_order! - break unless order.next! while !order.completed? + Orders::WorkflowService.new(order).complete! end it "records an issue and ignores it" do diff --git a/spec/system/admin/payments_stripe_spec.rb b/spec/system/admin/payments_stripe_spec.rb index deef52735b..a384f0f0df 100644 --- a/spec/system/admin/payments_stripe_spec.rb +++ b/spec/system/admin/payments_stripe_spec.rb @@ -101,7 +101,7 @@ RSpec.describe ' stub_payment_intents_post_request order:, stripe_account_header: true stub_successful_capture_request(order:) - break unless order.next! while !order.payment? + Orders::WorkflowService.new(order).advance_to_payment end it "adds a payment with state complete" do diff --git a/spec/system/admin/reports_spec.rb b/spec/system/admin/reports_spec.rb index 7a451de56e..d441b97ccd 100644 --- a/spec/system/admin/reports_spec.rb +++ b/spec/system/admin/reports_spec.rb @@ -261,15 +261,18 @@ RSpec.describe ' before do order1.reload - break unless order1.next! until order1.delivery? + while !order1.delivery? + break unless order1.next! + end order1.select_shipping_method(shipping_method.id) order1.recreate_all_fees! - break unless order1.next! until order1.payment? + order_workflow = Orders::WorkflowService.new(order1) + order_workflow.advance_to_payment create(:payment, state: "checkout", order: order1, amount: order1.reload.total, payment_method: create(:payment_method, distributors: [distributor1])) - break unless order1.next! until order1.complete? + order_workflow.complete! login_as_admin visit admin_reports_path