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