diff --git a/src/helpers/querystring-helper.spec.js b/src/helpers/querystring-helper.spec.js index 1c7378be..4af685d9 100644 --- a/src/helpers/querystring-helper.spec.js +++ b/src/helpers/querystring-helper.spec.js @@ -1,4 +1,8 @@ -import { buildQueryStringParameterFromArrayOfComplexObjects, getLineItemQueryString } from '@/helpers/querystring-helper'; +import { + buildQueryStringParameterFromArrayOfComplexObjects, + getLineItemQueryString, + getTaxLineItemQueryString +} from '@/helpers/querystring-helper'; describe('querystring-helper', () => { describe('buildQueryStringParameterFromArrayOfComplexObjects', () => { @@ -44,4 +48,34 @@ describe('querystring-helper', () => { expect(result).toBe('¶m[0].partNumber=a¶m[1].partNumber=b¶m[2].partNumber=c¶m[3].partNumber=d¶m[4].partNumber=e'); }); }); + + describe('getTaxLineItemQueryString', () => { + it('returns empty query string from empty line items', () => { + // Arrange + const lineItems = []; + + // Act + const result = getTaxLineItemQueryString(lineItems, 'param'); + + // Assert + expect(result).toBe(''); + }); + + it('returns a query string from line items', () => { + // Arrange + const a = { partNumber: 'a', laborAmount: 0, sellingPrice: 10, kitPrice: 10 }; + const c = { partNumber: 'c', laborAmount: 5, sellingPrice: 5, kitPrice: 5 }; + const b = { partNumber: 'b', laborAmount: 10, sellingPrice: 10, kitPrice: 0, childParts: [c] }; + const d = { partNumber: 'd', laborAmount: 10, sellingPrice: 10, kitPrice: 10 }; + + const lineItems = [a, b, d]; + + // Act + const result = getTaxLineItemQueryString(lineItems, 'param'); + + // Assert + // eslint-disable-next-line max-len + expect(result).toBe('¶m[0].partNumber=a¶m[0].laborAmount=0¶m[0].sellingPrice=10¶m[0].kitPrice=10¶m[1].partNumber=b¶m[1].laborAmount=10¶m[1].sellingPrice=10¶m[1].kitPrice=0¶m[2].partNumber=c¶m[2].laborAmount=5¶m[2].sellingPrice=5¶m[2].kitPrice=5¶m[3].partNumber=d¶m[3].laborAmount=10¶m[3].sellingPrice=10¶m[3].kitPrice=10'); + }); + }); });