UNPKG

@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
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 }); });