Handle unitsVariant when calling formattedValueWithUnitName

- unitsVariant was unread but is necessary to compute the unit_name thanks to `VariantUnitManager.getUnitName()`
This commit is contained in:
Jean-Baptiste Bellet
2021-12-03 11:45:55 +01:00
parent 3922ffa6a9
commit 7b2a9df326
2 changed files with 12 additions and 10 deletions

View File

@@ -228,34 +228,35 @@ describe "LineItemsCtrl", ->
beforeEach ->
spyOn(Math,"round").and.callThrough()
unitsVariant = { unit_value: "1" }
it "returns '' if selectedUnitsVariant has no property 'variant_unit'", ->
expect(scope.formattedValueWithUnitName(1,{})).toEqual ''
it "returns '', and does not call Math.round if variant_unit is 'items'", ->
unitsVariant = { variant_unit: "items" }
expect(scope.formattedValueWithUnitName(1,unitsVariant)).toEqual ''
unitsProduct = { variant_unit: "items" }
expect(scope.formattedValueWithUnitName(1,unitsProduct,unitsVariant)).toEqual ''
expect(Math.round).not.toHaveBeenCalled()
it "calls Math.round() if variant_unit is 'weight' or 'volume'", ->
unitsVariant = { variant_unit: "weight" }
scope.formattedValueWithUnitName(1,unitsVariant)
unitsProduct = { variant_unit: "weight" }
scope.formattedValueWithUnitName(1,unitsProduct,unitsVariant)
expect(Math.round).toHaveBeenCalled()
scope.selectedUnitsVariant = { variant_unit: "volume" }
scope.formattedValueWithUnitName(1,unitsVariant)
scope.formattedValueWithUnitName(1,unitsProduct,unitsVariant)
expect(Math.round).toHaveBeenCalled()
it "calls Math.round with the quotient of scale and value, multiplied by 1000", ->
unitsVariant = { variant_unit: "weight" }
unitsProduct = { variant_unit: "weight" }
spyOn(VariantUnitManager, "getScale").and.returnValue 5
scope.formattedValueWithUnitName(10, unitsVariant)
scope.formattedValueWithUnitName(10, unitsProduct,unitsVariant)
expect(Math.round).toHaveBeenCalledWith 10/5 * 1000
it "returns the result of Math.round divided by 1000, followed by the result of getUnitName", ->
unitsVariant = { variant_unit: "weight" }
unitsProduct = { variant_unit: "weight" }
spyOn(VariantUnitManager, "getScale").and.returnValue 1000
spyOn(VariantUnitManager, "getUnitName").and.returnValue "kg"
expect(scope.formattedValueWithUnitName(2000,unitsVariant)).toEqual "2 kg"
expect(scope.formattedValueWithUnitName(2000,unitsProduct,unitsVariant)).toEqual "2 kg"
describe "updating the price upon updating the weight of a line item", ->
beforeEach ->