Deal with unit_value of zero correctly - do not treat as nil

This commit is contained in:
Rohan Mitchell
2014-02-18 10:32:36 +11:00
parent 19e31a264d
commit 547f46fbc9
2 changed files with 26 additions and 3 deletions

View File

@@ -222,11 +222,12 @@ productEditModule.controller "AdminProductEditCtrl", [
$scope.loadVariantVariantUnit = (product, variant) ->
unit_value = $scope.variantUnitValue product, variant
variant.unit_value_with_description = "#{unit_value || ''} #{variant.unit_description || ''}".trim()
unit_value = if unit_value? then unit_value else ''
variant.unit_value_with_description = "#{unit_value} #{variant.unit_description || ''}".trim()
$scope.variantUnitValue = (product, variant) ->
if variant.unit_value
if variant.unit_value?
if product.variant_unit_scale
variant.unit_value / product.variant_unit_scale
else
@@ -421,7 +422,8 @@ productEditModule.controller "AdminProductEditCtrl", [
match = variant.unit_value_with_description.match(/^([\d\.]+|)( |)(.*)$/)
if match
product = $scope.findProduct(product.id)
variant.unit_value = parseFloat(match[1]) || null
variant.unit_value = parseFloat(match[1])
variant.unit_value = null if isNaN(variant.unit_value)
variant.unit_value *= product.variant_unit_scale if variant.unit_value && product.variant_unit_scale
variant.unit_description = match[3]

View File

@@ -499,6 +499,13 @@ describe "AdminProductEditCtrl", ->
scope.loadVariantVariantUnit product, product.variants[0]
expect(product.variants[0].unit_value_with_description).toEqual '2.5'
it "displays a unit_value of zero", ->
product =
variant_unit_scale: 1.0
variants: [{id: 1, unit_value: 0}]
scope.loadVariantVariantUnit product, product.variants[0]
expect(product.variants[0].unit_value_with_description).toEqual '0'
describe "calculating the scaled unit value for a variant", ->
it "returns the scaled value when variant has a unit_value", ->
@@ -511,6 +518,11 @@ describe "AdminProductEditCtrl", ->
variant = {unit_value: 5}
expect(scope.variantUnitValue(product, variant)).toEqual 5
it "returns zero when the value is zero", ->
product = {}
variant = {unit_value: 0}
expect(scope.variantUnitValue(product, variant)).toEqual 0
it "returns null when the variant has no unit_value", ->
product = {}
variant = {}
@@ -761,6 +773,15 @@ describe "AdminProductEditCtrl", ->
scope.packVariant(testProduct, testVariant)
expect(testVariant).toEqual {}
it "sets zero when the field is zero", ->
testProduct = {id: 123, variant_unit_scale: 1.0}
testVariant = {unit_value_with_description: "0"}
scope.packVariant(testProduct, testVariant)
expect(testVariant).toEqual
unit_value: 0
unit_description: ''
unit_value_with_description: "0"
it "converts value from chosen unit to base unit", ->
testProduct = {id: 123, variant_unit_scale: 1000}
testVariant = {unit_value_with_description: "250.5"}