Handle string values for variant unit value

The FDC API is returning all values as strings. This should probably be
handled in the Connector long-term.
This commit is contained in:
Maikel Linke
2024-05-28 15:13:18 +10:00
parent 1f00662709
commit a1992aed7c
2 changed files with 15 additions and 1 deletions

View File

@@ -33,7 +33,7 @@ class QuantitativeValueBuilder < DfcBuilder
product.variant_unit = measure
product.variant_unit_name = unit_name if measure == "items"
product.variant_unit_scale = unit_scale
product.unit_value = quantity.value * unit_scale
product.unit_value = quantity.value.to_f * unit_scale
end
# Map DFC units to OFN fields:

View File

@@ -104,6 +104,20 @@ RSpec.describe QuantitativeValueBuilder do
expect(product.unit_value).to eq 0.005
end
it "interpretes values given as a string" do
quantity = DataFoodConsortium::Connector::QuantitativeValue.new(
unit: quantity_unit.KILOGRAM,
value: "0.4",
)
builder.apply(quantity, product)
expect(product.variant_unit).to eq "weight"
expect(product.variant_unit_name).to eq nil
expect(product.variant_unit_scale).to eq 1_000
expect(product.unit_value).to eq 400
end
it "knows imperial units" do
quantity = DataFoodConsortium::Connector::QuantitativeValue.new(
unit: quantity_unit.POUNDMASS,