diff --git a/src/constants/part-number-strings.js b/src/constants/part-number-strings.js index 89f4a97f..55905408 100644 --- a/src/constants/part-number-strings.js +++ b/src/constants/part-number-strings.js @@ -2,7 +2,9 @@ const partNumberStrings = Object.freeze({ RECYCLE_FEE: 'RECYCLE FEE', LABOR2: 'LABOR2', RECAL_MOBILE: 'RECAL MOBILE', - RECAL_MOBILEDUAL: 'RECAL MOBILEDUAL' + RECAL_MOBILEDUAL: 'RECAL MOBILEDUAL', + REPAIR: 'WSREPAIR', + SUPPLIES_REPAIR: 'SUPPLIES-REPAIR' }); export default partNumberStrings; diff --git a/src/store/index.js b/src/store/index.js index 2aa8248a..db5894c6 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1034,7 +1034,7 @@ export const useMainStore = defineStore({ const damageType = this.damage.isRepair ? 'Repair' : 'Install'; const parts = getLineItemsFlattened(this.order.lineItems.glassParts); - const partNumbers = parts.map((part) => part.partNumber).join(','); + const partNumbers = this.damage.isRepair ? partNumberStrings.REPAIR : parts.map((part) => part.partNumber).join(','); let url = `${endpoints.GetTpaAndSafeliteProviders.url}/${zipCode}?accountNumber=${parentAccountNumber}&carId=${carId}&damageType=${damageType}&partNumbers=${partNumbers}`; if (provderNameSearchString) { @@ -1985,8 +1985,13 @@ export const useMainStore = defineStore({ // Process Recycle Fee this.updateRecycleFee(partsData.find((rf) => rf.partNumber === partNumberStrings.RECYCLE_FEE)); - // Remove RecycleFee from supporting items since it's already been added to feeItems - this.order.lineItems.supportingItems = partsData.filter((i) => i.partNumber !== partNumberStrings.RECYCLE_FEE); + // Remove Recycle Fee from supporting items since it's already been added to feeItems + let supportingItems = partsData.filter((i) => i.partNumber !== partNumberStrings.RECYCLE_FEE); + + // Remove Repair Supplies Fee, which is hidden for ISS except in scenarios not yet implemented + supportingItems = supportingItems.filter((i) => i.partNumber !== partNumberStrings.SUPPLIES_REPAIR); + + this.order.lineItems.supportingItems = supportingItems; }, updateVaps(partsData) { diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 38a52c16..d6a29e43 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -15,6 +15,7 @@ import { AppointmentTypeStrings } from '@/constants/schedule-constants'; import coverageType from '@/constants/coverage-type'; import { getEnumName } from '@/helpers/unit-test-helper'; import { strictEqual } from 'assert'; +import partNumberStrings from '@/constants/part-number-strings'; describe('Store', () => { let store; @@ -1978,7 +1979,7 @@ describe('Store', () => { const carId = getRandomString(10, 14); const parentAccountNumber = getRandomString(6, 6); - const partNumber = getRandomString(6, 6); + const partNumber = isRepair ? partNumberStrings.REPAIR : getRandomString(6, 6); store.order.parentAccountNumber = parentAccountNumber; store.order.damage.isRepair = isRepair; store.order.vehicle.carId = carId; @@ -2512,6 +2513,28 @@ describe('Store', () => { ]) ); }); + it('updateSupportingItems removes Repair Supplies Fee from supporting items in store', () => { + // Arrange + const partsData = [ + { + partNumber: partNumberStrings.SUPPLIES_REPAIR, + partType: 'REPAIR FEE' + } + ]; + + // Act + store.updateSupportingItems(partsData); + + // Assert + expect(store.order.lineItems.supportingItems).not.toEqual( + expect.arrayContaining([ + expect.objectContaining({ + partNumber: partNumberStrings.SUPPLIES_REPAIR, + partType: 'REPAIR FEE' + }) + ]) + ); + }); }); describe('updateGlassFees method', () => { it('updateGlassFees does not add Labor2 fee to feeItems', () => {