From db69745484b7ed91d16edf756b5052a428735910 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Thu, 9 Apr 2026 16:10:37 -0400 Subject: [PATCH 1/2] INSR-9064: Remove repair supplies fee, account for repair in TPA search --- src/constants/part-number-strings.js | 3 ++- src/store/index.js | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/constants/part-number-strings.js b/src/constants/part-number-strings.js index 89f4a97f..f6627aab 100644 --- a/src/constants/part-number-strings.js +++ b/src/constants/part-number-strings.js @@ -2,7 +2,8 @@ const partNumberStrings = Object.freeze({ RECYCLE_FEE: 'RECYCLE FEE', LABOR2: 'LABOR2', RECAL_MOBILE: 'RECAL MOBILE', - RECAL_MOBILEDUAL: 'RECAL MOBILEDUAL' + RECAL_MOBILEDUAL: 'RECAL MOBILEDUAL', + REPAIR_SUPPLIES: 'REPAIR-SUPPLIES' }); export default partNumberStrings; diff --git a/src/store/index.js b/src/store/index.js index 2aa8248a..bb4ae0ed 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 ? 'WSREPAIR' : 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.REPAIR_SUPPLIES); + + this.order.lineItems.supportingItems = supportingItems; }, updateVaps(partsData) { From ca6ec847d037eab9dbc98d7f46eeb19733a23d77 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Thu, 9 Apr 2026 16:46:27 -0400 Subject: [PATCH 2/2] Fix tests, correct part number string for repair supplies --- src/constants/part-number-strings.js | 3 ++- src/store/index.js | 4 ++-- src/store/store.spec.js | 25 ++++++++++++++++++++++++- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/constants/part-number-strings.js b/src/constants/part-number-strings.js index f6627aab..55905408 100644 --- a/src/constants/part-number-strings.js +++ b/src/constants/part-number-strings.js @@ -3,7 +3,8 @@ const partNumberStrings = Object.freeze({ LABOR2: 'LABOR2', RECAL_MOBILE: 'RECAL MOBILE', RECAL_MOBILEDUAL: 'RECAL MOBILEDUAL', - REPAIR_SUPPLIES: 'REPAIR-SUPPLIES' + REPAIR: 'WSREPAIR', + SUPPLIES_REPAIR: 'SUPPLIES-REPAIR' }); export default partNumberStrings; diff --git a/src/store/index.js b/src/store/index.js index bb4ae0ed..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 = this.damage.isRepair ? 'WSREPAIR' : 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) { @@ -1989,7 +1989,7 @@ export const useMainStore = defineStore({ 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.REPAIR_SUPPLIES); + supportingItems = supportingItems.filter((i) => i.partNumber !== partNumberStrings.SUPPLIES_REPAIR); this.order.lineItems.supportingItems = supportingItems; }, 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', () => {