diff --git a/engines/dfc_provider/app/services/quantitative_value_builder.rb b/engines/dfc_provider/app/services/quantitative_value_builder.rb index 0004c80703..7013063062 100644 --- a/engines/dfc_provider/app/services/quantitative_value_builder.rb +++ b/engines/dfc_provider/app/services/quantitative_value_builder.rb @@ -34,6 +34,8 @@ class QuantitativeValueBuilder < DfcBuilder case quantity.unit when quantity_unit.LITRE ["volume", "liter", 1] + when quantity_unit.MILLIGRAM + ["weight", "mg", 0.001] when quantity_unit.GRAM ["weight", "gram", 1] when quantity_unit.KILOGRAM diff --git a/engines/dfc_provider/spec/services/quantitative_value_builder_spec.rb b/engines/dfc_provider/spec/services/quantitative_value_builder_spec.rb index 60528f0ae6..aa2f7a9142 100644 --- a/engines/dfc_provider/spec/services/quantitative_value_builder_spec.rb +++ b/engines/dfc_provider/spec/services/quantitative_value_builder_spec.rb @@ -89,5 +89,19 @@ describe QuantitativeValueBuilder do expect(product.variant_unit_scale).to eq 1_000 expect(product.unit_value).to eq 4_000 end + + it "knows metric units with a small scale" do + quantity = DataFoodConsortium::Connector::QuantitativeValue.new( + unit: quantity_unit.MILLIGRAM, + value: 5, + ) + + builder.apply(quantity, product) + + expect(product.variant_unit).to eq "weight" + expect(product.variant_unit_name).to eq "mg" + expect(product.variant_unit_scale).to eq 0.001 + expect(product.unit_value).to eq 0.005 + end end end