Merge pull request #699 from Safelite/feature/richardson/SSR-1207
get sales tax from tax api
This commit is contained in:
commit
6a5bda1829
3 changed files with 46 additions and 3 deletions
|
|
@ -28,3 +28,12 @@ export function getLineItemQueryString(lineItems, parameterName) {
|
|||
`${parameterName}[${index}].partNumber=${lineItem.partNumber}`).join('&');
|
||||
return queryString.length !== 0 ? `&${queryString}` : '';
|
||||
}
|
||||
|
||||
export function getTaxLineItemQueryString(lineItems, parameterName) {
|
||||
const queryString = getLineItemsFlattened(lineItems).map((lineItem, index) =>
|
||||
`${parameterName}[${index}].partNumber=${lineItem.partNumber}`
|
||||
+ `&${parameterName}[${index}].laborAmount=${lineItem.laborAmount}`
|
||||
+ `&${parameterName}[${index}].sellingPrice=${lineItem.sellingPrice}`
|
||||
+ `&${parameterName}[${index}].kitPrice=${lineItem.kitPrice}`).join('&');
|
||||
return queryString.length !== 0 ? `&${queryString}` : '';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ import bailoutMessage from '@/constants/bailoutMessage';
|
|||
import bailoutCode from '@/constants/bailoutCode';
|
||||
import partNumberStrings from '@/constants/part-number-strings';
|
||||
import { getLineItemsFlattened } from '@/helpers/line-items-helper';
|
||||
import { buildQueryStringParameterFromArrayOfComplexObjects, getLineItemQueryString } from '@/helpers/querystring-helper';
|
||||
import { buildQueryStringParameterFromArrayOfComplexObjects, getLineItemQueryString, getTaxLineItemQueryString } from '@/helpers/querystring-helper';
|
||||
|
||||
const storeId = 'main';
|
||||
|
||||
|
|
@ -2021,7 +2021,7 @@ export const useMainStore = defineStore({
|
|||
const serviceLocationState = serviceLocation.state;
|
||||
const serviceLocationZipCode = serviceLocation.zipCode;
|
||||
|
||||
const lineItemsQueryString = getLineItemQueryString(pricedLineItems, 'lineItems');
|
||||
const lineItemsQueryString = getTaxLineItemQueryString(pricedLineItems, 'lineItems');
|
||||
|
||||
let queryString = '';
|
||||
if (appointmentType === AppointmentTypeStrings.MOBILE
|
||||
|
|
|
|||
Loading…
Reference in a new issue