@emealscom/packer
Version:
* cups * grams * pounds * liters * mililiters * pint * quart * ounces * tablespoons * teaspoons * unit * each * package * slices * bunck * fz
215 lines (204 loc) • 6.8 kB
JavaScript
const convert = require('../dist/lib/fn.js').default;
const calculateQuantity = require('../dist/lib/fn.js').calculateQuantity;
it('Salad dressing with 15.5 oz package', () => {
expect(calculateQuantity(16, 15.5)).toBe(1);
});
it('22 oz Butter vs 16 oz Package', () => {
expect(calculateQuantity(22, 16)).toBe(2);
})
it('Test Rule Eggs', function() {
const packerRequest = {
description: "eggs",
unitMeasure: "unit",
unitQuantity: "12",
packageUnitMeasure: "ea",
packageUnitQuantity: "1",
staple: false,
rules: [
{
prior: 1,
condition: {
description: {
name: "test-regex",
value: "(eggs)"
},
packageUnitMeasure: "ea"
},
convertion: {
unitMeasure: "ea"
}
},
]
};
expect(convert(packerRequest)).toEqual({ estimatedQuantity: 12, status: true });
});
it('Test for Ear Bunch Head', () => {
const packerRequest = {
description: "Package of brocoli",
unitMeasure: "ear",
unitQuantity: "6",
packageUnitMeasure: "ea",
packageUnitQuantity: "1",
staple: false,
rules: [
{
prior: 2,
condition: {
unitMeasure: {
name: "test-regex",
value: "(ear|head|bunch)"
},
packageUnitMeasure: "ea"
},
convertion: {
unitMeasure: "ea"
}
}
]
};
expect(convert(packerRequest)).toEqual({ estimatedQuantity: 6, status: true });
});
it('Test Taco Count', () => {
const packerRequest = {
description: "Taco",
unitMeasure: "count",
unitQuantity: "12",
packageUnitMeasure: "count",
packageUnitQuantity: "18",
staple: false
};
expect(convert(packerRequest)).toEqual({ estimatedQuantity: 1, status: true });
});
it('Test Honeycrisp apple', () => {
const packerRequest = {
description: "Honeycrisp apple | * Crisp and aromatic with a pleasant sweet but tart flavor * Great morning, noon, or night * Chop them up and add to a salad, dice and top with oats, spices, and butter for an apple | Honeycrisp Apples, Bulk",
unitMeasure: "count",
unitQuantity: "2",
packageUnitMeasure: "lb",
packageUnitQuantity: "0.6",
staple: false
};
expect(convert(packerRequest)).toEqual({ estimatedQuantity: 1, status: false });
});
it('Test for quantity math-c2 A', () => {
const packerRequest = {
description: "Package of Thermonuclear Warhead 16 count",
unitMeasure: "count",
unitQuantity: "6",
packageUnitMeasure: "unit",
packageUnitQuantity: "2",
staple: false,
rules: [
{
prior: 2,
condition: {
unitMeasure: {
name: "test-regex",
value: "(ct|count|counts|ctn)"
}
},
convertion: {
packageUnitQuantity: {
name: "math-c2",
value: ["unitQuantity"]
},
packageUnitMeasure: "count"
}
}
]
};
expect(convert(packerRequest)).toEqual({ estimatedQuantity: 1, status: true });
});
it('Test for quantity math-c2', () => {
const packerRequest = {
description: "Package of Thermonuclear Warhead 16 count",
unitMeasure: "count",
unitQuantity: "6",
packageUnitMeasure: "unit",
packageUnitQuantity: "2",
staple: false,
rules: [
{
prior: 2,
condition: {
unitMeasure: {
name: "test-regex",
value: "(ct|count|counts|ctn)"
}
},
convertion: {
packageUnitQuantity: {
name: "math-c2",
value: ["unitQuantity"]
},
packageUnitMeasure: "count"
}
}
]
};
expect(convert(packerRequest)).toEqual({ estimatedQuantity: 1, status: true });
});
it('Test for set value for another property setval-c1', () => {
const packerRequest = {
description: "Pack Wine bottle",
unitMeasure: "jar",
unitQuantity: "1",
packageUnitMeasure: "bottle",
packageUnitQuantity: "2",
staple: false,
rules: [
{
prior: 2,
condition: {
unitMeasure: {
name: "test-regex",
value: "(jar|bottle|inch)"
}
},
convertion: {
unitQuantity: {
name: "math-c2",
value: ["packageUnitQuantity"]
},
unitMeasure: {
name: "setval-c1",
value: ["packageUnitMeasure"]
}
}
}
]
};
expect(convert(packerRequest)).toEqual({ estimatedQuantity: 1, status: true });
});
it('Test for set value for extract-c3', () => {
const packerRequest = {
description: "mild ground Italian sausage | * Sausage made with only premium cuts of pork Authentic flavor from the perfect blend of spices Source of protein and no trans fat | Johnsonville Mild Italian Ground Sausage, 16 oz",
unitMeasure: "oz",
unitQuantity: "8",
packageUnitMeasure: "ea",
packageUnitQuantity: "1",
staple: false,
rules: [
{
prior: 2,
condition: {
unitMeasure: {
name: "test-regex",
value: "(oz)"
}
},
convertion: {
packageUnitMeasure: {
name: "extract-c3",
value: ["description", "([\\d]+).(oz)", 1]
},
packageUnitQuantity: {
name: "extract-c3",
value: ["description", "([\\d]+).(oz)", 0]
}
}
}
]
};
expect(convert(packerRequest)).toEqual({ estimatedQuantity: 1, status: true });
});