Fix ProductDuplicator

There isn't away I could think of to create an invalid product, so I
removed those test
This commit is contained in:
Gaetan Craig-Riou
2024-07-29 16:09:36 +10:00
parent 058d7eeb69
commit 00dfe6810f
3 changed files with 1 additions and 23 deletions

View File

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

View File

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

View File

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