From 00dfe6810fe8c15e1371c3f88ee638b364951cdc Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Mon, 29 Jul 2024 16:09:36 +1000 Subject: [PATCH] Fix ProductDuplicator There isn't away I could think of to create an invalid product, so I removed those test --- lib/spree/core/product_duplicator.rb | 1 - spec/lib/spree/core/product_duplicator_spec.rb | 13 ------------- spec/models/spree/product_spec.rb | 10 +--------- 3 files changed, 1 insertion(+), 23 deletions(-) diff --git a/lib/spree/core/product_duplicator.rb b/lib/spree/core/product_duplicator.rb index 82837bf3a6..5000caf7cd 100644 --- a/lib/spree/core/product_duplicator.rb +++ b/lib/spree/core/product_duplicator.rb @@ -25,7 +25,6 @@ module Spree new_product.deleted_at = nil new_product.updated_at = nil new_product.price = 0 - new_product.unit_value = %w(weight volume).include?(product.variant_unit) ? 1.0 : nil new_product.product_properties = reset_properties new_product.image = duplicate_image(product.image) if product.image new_product.variants = duplicate_variants diff --git a/spec/lib/spree/core/product_duplicator_spec.rb b/spec/lib/spree/core/product_duplicator_spec.rb index 141030048a..377218211f 100644 --- a/spec/lib/spree/core/product_duplicator_spec.rb +++ b/spec/lib/spree/core/product_duplicator_spec.rb @@ -73,7 +73,6 @@ RSpec.describe Spree::Core::ProductDuplicator do expect(new_product).to receive(:product_properties=).with([new_property]) expect(new_product).to receive(:created_at=).with(nil) expect(new_product).to receive(:price=).with(0) - expect(new_product).to receive(:unit_value=).with(nil) expect(new_product).to receive(:updated_at=).with(nil) expect(new_product).to receive(:deleted_at=).with(nil) expect(new_product).to receive(:variants=).with([new_variant]) @@ -99,18 +98,6 @@ RSpec.describe Spree::Core::ProductDuplicator do end describe "errors" do - context "with invalid product" do - let(:product) { - # name is a required field - create(:product).tap{ |p| p.update_columns(variant_unit: nil) } - } - subject { Spree::Core::ProductDuplicator.new(product).duplicate } - - it "raises RecordInvalid error" do - expect{ subject }.to raise_error(ActiveRecord::RecordInvalid) - end - end - context "invalid variant" do let(:variant) { # tax_category is required when products_require_tax_category diff --git a/spec/models/spree/product_spec.rb b/spec/models/spree/product_spec.rb index 130ac639a6..91edc40ba0 100644 --- a/spec/models/spree/product_spec.rb +++ b/spec/models/spree/product_spec.rb @@ -17,13 +17,6 @@ module Spree expect(clone.sku).to eq "" expect(clone.image).to eq product.image end - - it 'fails to duplicate invalid product' do - # Existing product is invalid: - product.update_columns(variant_unit: nil) - - expect{ product.duplicate }.to raise_error(ActiveRecord::ActiveRecordError) - end end context "product has variants" do @@ -123,7 +116,6 @@ module Spree it { is_expected.to validate_length_of(:name).is_at_most(255) } it { is_expected.to validate_length_of(:sku).is_at_most(255) } -# context "when the product has variants" do let(:product) do product = create(:simple_product) @@ -131,7 +123,7 @@ module Spree product.reload end - it { is_expected.to validate_numericality_of(:price).is_greater_than_or_equal_to(0) + it { is_expected.to validate_numericality_of(:price).is_greater_than_or_equal_to(0) } context "saving a new product" do let!(:product){ Spree::Product.new }