diff --git a/app/services/weights_and_measures.rb b/app/services/weights_and_measures.rb index 78846e6e859..170dacb2088 100644 --- a/app/services/weights_and_measures.rb +++ b/app/services/weights_and_measures.rb @@ -15,9 +15,11 @@ def scale_for_unit_value def system return "custom" unless scales = scales_for_variant_unit(ignore_available_units: true) - return "custom" unless product_scale = @variant.product.variant_unit_scale - scales[product_scale.to_f]['system'] + product_scale = @variant.product.variant_unit_scale&.to_f + return "custom" unless product_scale.present? && product_scale.positive? + + scales[product_scale]['system'] end # @returns enumerable with label and value for select diff --git a/spec/services/weights_and_measures_spec.rb b/spec/services/weights_and_measures_spec.rb index 3f6d742b339..0992316886c 100644 --- a/spec/services/weights_and_measures_spec.rb +++ b/spec/services/weights_and_measures_spec.rb @@ -91,7 +91,7 @@ expect(subject.system).to eq("custom") end - pending "when unit is valid, but scale is 0" do + it "when unit is valid, but scale is 0" do allow(product).to receive(:variant_unit) { "weight" } allow(product).to receive(:variant_unit_scale) { 0.0 } expect(subject.system).to eq("custom")