From ffe93fc470386e94fa2989addd4a94396f3c2221 Mon Sep 17 00:00:00 2001 From: cyrillefr Date: Tue, 17 Jun 2025 10:52:58 +0200 Subject: [PATCH] Style Metrics/ModuleLength in spec file --- .rubocop_todo.yml | 1 - .../products_reset_strategy_spec.rb | 214 +++++++++--------- 2 files changed, 105 insertions(+), 110 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index a3359eb36e..28e913cd1b 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -160,7 +160,6 @@ Metrics/ModuleLength: - 'app/helpers/spree/admin/orders_helper.rb' - 'app/models/spree/order/checkout.rb' - 'app/models/spree/payment/processing.rb' - - 'engines/catalog/spec/services/catalog/product_import/products_reset_strategy_spec.rb' - 'engines/order_management/spec/services/order_management/order/updater_spec.rb' - 'engines/order_management/spec/services/order_management/stock/package_spec.rb' - 'engines/order_management/spec/services/order_management/subscriptions/estimator_spec.rb' diff --git a/engines/catalog/spec/services/catalog/product_import/products_reset_strategy_spec.rb b/engines/catalog/spec/services/catalog/product_import/products_reset_strategy_spec.rb index d407537e26..cebfa298b3 100644 --- a/engines/catalog/spec/services/catalog/product_import/products_reset_strategy_spec.rb +++ b/engines/catalog/spec/services/catalog/product_import/products_reset_strategy_spec.rb @@ -2,134 +2,130 @@ require 'spec_helper' -module Catalog - module ProductImport - RSpec.describe ProductsResetStrategy do - let(:products_reset) { described_class.new(excluded_items_ids) } +RSpec.describe Catalog::ProductImport::ProductsResetStrategy do + let(:products_reset) { described_class.new(excluded_items_ids) } - describe '#reset' do - let(:supplier_ids) { enterprise.id } - let(:product) { create(:product) } - let(:variant) { product.variants.first } - let(:enterprise) { variant.supplier } + describe '#reset' do + let(:supplier_ids) { enterprise.id } + let(:product) { create(:product) } + let(:variant) { product.variants.first } + let(:enterprise) { variant.supplier } - before { variant.on_hand = 2 } + before { variant.on_hand = 2 } - context 'when there are excluded_items_ids' do - let(:excluded_items_ids) { [variant.id] } + context 'when there are excluded_items_ids' do + let(:excluded_items_ids) { [variant.id] } - context 'and supplier_ids is []' do - let(:supplier_ids) { [] } + context 'and supplier_ids is []' do + let(:supplier_ids) { [] } - it 'does not reset the variant.on_hand' do - products_reset.reset(supplier_ids) - expect(variant.reload.on_hand).to eq(2) - end + it 'does not reset the variant.on_hand' do + products_reset.reset(supplier_ids) + expect(variant.reload.on_hand).to eq(2) + end + end + + context 'and supplier_ids is nil' do + let(:supplier_ids) { nil } + + it 'does not reset the variant.on_hand' do + products_reset.reset(supplier_ids) + expect(variant.reload.on_hand).to eq(2) + end + end + + context 'and supplier_ids is set' do + it 'does not update the on_hand of the excluded items' do + products_reset.reset(supplier_ids) + expect(variant.reload.on_hand).to eq(2) + end + + it 'updates the on_hand of the non-excluded items' do + non_excluded_variant = create( + :variant, + product: variant.product + ) + non_excluded_variant.on_hand = 3 + products_reset.reset(supplier_ids) + expect(non_excluded_variant.reload.on_hand).to eq(0) + end + end + end + + context 'when there are no excluded_items_ids' do + let(:excluded_items_ids) { [] } + + context 'and supplier_ids is []' do + let(:supplier_ids) { [] } + + it 'does not reset the variant.on_hand' do + products_reset.reset(supplier_ids) + expect(variant.reload.on_hand).to eq(2) + end + end + + context 'and supplier_ids is nil' do + let(:supplier_ids) { nil } + + it 'does not reset the variant.on_hand' do + products_reset.reset(supplier_ids) + expect(variant.reload.on_hand).to eq(2) + end + end + + context 'and supplier_ids is not nil' do + it 'sets all on_hand to 0' do + updated_records_count = products_reset.reset(supplier_ids) + expect(variant.reload.on_hand).to eq(0) + expect(updated_records_count).to eq(1) + end + + context 'and there is an unresetable variant' do + before do + variant.stock_items = [] # this makes variant.on_hand raise an error end - context 'and supplier_ids is nil' do - let(:supplier_ids) { nil } - - it 'does not reset the variant.on_hand' do - products_reset.reset(supplier_ids) - expect(variant.reload.on_hand).to eq(2) - end - end - - context 'and supplier_ids is set' do - it 'does not update the on_hand of the excluded items' do - products_reset.reset(supplier_ids) - expect(variant.reload.on_hand).to eq(2) - end - - it 'updates the on_hand of the non-excluded items' do - non_excluded_variant = create( - :variant, - product: variant.product - ) - non_excluded_variant.on_hand = 3 - products_reset.reset(supplier_ids) - expect(non_excluded_variant.reload.on_hand).to eq(0) - end + it 'returns correct number of resetted variants' do + expect { products_reset.reset(supplier_ids) }.to raise_error RuntimeError end end - context 'when there are no excluded_items_ids' do - let(:excluded_items_ids) { [] } + context 'and the variant is on demand' do + before { variant.on_demand = true } - context 'and supplier_ids is []' do - let(:supplier_ids) { [] } + it 'turns off the on demand setting on the variant' do + products_reset.reset(supplier_ids) - it 'does not reset the variant.on_hand' do - products_reset.reset(supplier_ids) - expect(variant.reload.on_hand).to eq(2) - end - end - - context 'and supplier_ids is nil' do - let(:supplier_ids) { nil } - - it 'does not reset the variant.on_hand' do - products_reset.reset(supplier_ids) - expect(variant.reload.on_hand).to eq(2) - end - end - - context 'and supplier_ids is not nil' do - it 'sets all on_hand to 0' do - updated_records_count = products_reset.reset(supplier_ids) - expect(variant.reload.on_hand).to eq(0) - expect(updated_records_count).to eq(1) - end - - context 'and there is an unresetable variant' do - before do - variant.stock_items = [] # this makes variant.on_hand raise an error - end - - it 'returns correct number of resetted variants' do - expect { products_reset.reset(supplier_ids) }.to raise_error RuntimeError - end - end - - context 'and the variant is on demand' do - before { variant.on_demand = true } - - it 'turns off the on demand setting on the variant' do - products_reset.reset(supplier_ids) - - expect(variant.reload.on_demand).to eq(false) - end - end + expect(variant.reload.on_demand).to eq(false) end end + end + end - context 'when excluded_items_ids is nil' do - let(:excluded_items_ids) { nil } + context 'when excluded_items_ids is nil' do + let(:excluded_items_ids) { nil } - context 'and supplier_ids is []' do - let(:supplier_ids) { [] } + context 'and supplier_ids is []' do + let(:supplier_ids) { [] } - it 'does not reset the variant.on_hand' do - products_reset.reset(supplier_ids) - expect(variant.reload.on_hand).to eq(2) - end - end + it 'does not reset the variant.on_hand' do + products_reset.reset(supplier_ids) + expect(variant.reload.on_hand).to eq(2) + end + end - context 'and supplier_ids is nil' do - let(:supplier_ids) { nil } - it 'does not reset the variant.on_hand' do - products_reset.reset(supplier_ids) - expect(variant.reload.on_hand).to eq(2) - end - end + context 'and supplier_ids is nil' do + let(:supplier_ids) { nil } + it 'does not reset the variant.on_hand' do + products_reset.reset(supplier_ids) + expect(variant.reload.on_hand).to eq(2) + end + end - context 'and supplier_ids is nil' do - it 'sets all on_hand to 0' do - products_reset.reset(supplier_ids) - expect(variant.reload.on_hand).to eq(0) - end - end + context 'and supplier_ids is nil' do + it 'sets all on_hand to 0' do + products_reset.reset(supplier_ids) + expect(variant.reload.on_hand).to eq(0) end end end