diff --git a/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee b/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee index 8a36972d1f59..6f6aefa336fb 100644 --- a/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee +++ b/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee @@ -72,8 +72,13 @@ angular.module("admin.products").factory "VariantUnitManager", (availableUnits) @compatibleUnitScales: (scale, unitType) -> scaleSystem = @units[unitType][scale]['system'] - (parseFloat(scale) for scale, scaleInfo of @units[unitType] when scaleInfo['system'] == scaleSystem).sort (a, b) -> - a - b + if availableUnits + available = availableUnits.split(",") + (parseFloat(scale) for scale, scaleInfo of @units[unitType] when scaleInfo['system'] == scaleSystem and available.includes(scaleInfo['name'])).sort (a, b) -> + a - b + else + (parseFloat(scale) for scale, scaleInfo of @units[unitType] when scaleInfo['system'] == scaleSystem).sort (a, b) -> + a - b @systemOfMeasurement: (scale, unitType) -> if @units[unitType][scale] diff --git a/spec/javascripts/unit/admin/services/variant_unit_manager_spec.js.coffee b/spec/javascripts/unit/admin/services/variant_unit_manager_spec.js.coffee index 4c1db69209bc..7a1d72677412 100644 --- a/spec/javascripts/unit/admin/services/variant_unit_manager_spec.js.coffee +++ b/spec/javascripts/unit/admin/services/variant_unit_manager_spec.js.coffee @@ -33,6 +33,18 @@ describe "VariantUnitManager", -> expect(VariantUnitManager.compatibleUnitScales(1, "weight")).toEqual [1.0, 1000.0, 1000000.0] expect(VariantUnitManager.compatibleUnitScales(453.6, "weight")).toEqual [28.35, 453.6] + pending "should load only available unit", -> + beforeEach -> + module "admin.products" + module ($provide)-> + $provide.value "availableUnits", "g,T,mL,L,kL,lb" + null + inject (_VariantUnitManager_) -> + VariantUnitManager1 = _VariantUnitManager_ + it "returns a sorted set of compatible scales based on the scale and unit type provided", -> + expect(VariantUnitManager1.compatibleUnitScales(1, "weight")).toEqual [1.0, 1000000.0] + expect(VariantUnitManager1.compatibleUnitScales(453.6, "weight")).toEqual [453.6] + describe "variantUnitOptions", -> it "returns an array of options", -> expect(VariantUnitManager.variantUnitOptions()).toEqual [