Use Orders::WorkflowService#complete! and #advance_to_payment in specs to replace code causing Style/NestedModifier rubocop offenses

Rewrite the loop "break unless a = order.next! while !order.delivery?" to correct the offenses. Not adding a helper because the change was only needed in a couple of places.
This commit is contained in:
Carlos Chitty
2025-06-04 10:37:09 -04:00
parent 00aa60c8a3
commit 63d284e81a
11 changed files with 27 additions and 37 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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