From c39b00b6c2945d75d74796751c7f948de4d7c282 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Tue, 5 Jul 2022 16:35:33 +0200 Subject: [PATCH] do not set `on_demand` and `on_hand` if variant has errors + update specs Co-Authored-By: Maikel --- app/services/sets/product_set.rb | 5 +++++ spec/services/sets/product_set_spec.rb | 4 +--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/services/sets/product_set.rb b/app/services/sets/product_set.rb index 4563bce0bb..4486606da2 100644 --- a/app/services/sets/product_set.rb +++ b/app/services/sets/product_set.rb @@ -114,6 +114,11 @@ module Sets variant = product.variants.create(variant_attributes) + if variant.errors.present? + product.errors.merge!(variant.errors) + return false + end + begin variant.on_demand = on_demand if on_demand.present? variant.on_hand = on_hand.to_i if on_hand.present? diff --git a/spec/services/sets/product_set_spec.rb b/spec/services/sets/product_set_spec.rb index 36aaf9fefb..026d3b3ff5 100644 --- a/spec/services/sets/product_set_spec.rb +++ b/spec/services/sets/product_set_spec.rb @@ -173,10 +173,8 @@ describe Sets::ProductSet do end it 'does not create variant and notifies bugsnag still raising the exception' do - expect(Bugsnag).to receive(:notify) number_of_variants = Spree::Variant.all.size - expect { product_set.save } - .to raise_error(StandardError) + expect(product_set.save).to eq(false) expect(Spree::Variant.all.size).to eq number_of_variants expect(Spree::Variant.last.sku).not_to eq('321') end