mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
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:
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user