From e184e0ea767873fe329ad38e2db844dad12f3924 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Mon, 20 Jul 2026 15:48:47 -0400 Subject: [PATCH 1/4] INSR-10445: Add fleetNumber and fleetUnitNumber to vehicle data --- .../policy-vehicles/policy-vehicles.vue | 12 ++++++--- src/store/index.js | 25 +++++++++++++++---- src/store/store.spec.js | 18 ++++++++++--- 3 files changed, 43 insertions(+), 12 deletions(-) diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index b13f8b64..45bd502e 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -156,7 +156,9 @@ export default { useMainStore().updateVehicle({ ...vehicle.data, policyVehicleId: this.selectedPolicyVehicle?.id, - vin: value + vin: value, + fleetNumber: this.selectedPolicyVehicle?.fleetNumber, + fleetUnitNumber: this.selectedPolicyVehicle?.fleetUnitNumber }); } } catch (e) { @@ -199,7 +201,9 @@ export default { useMainStore().updateVehicle({ ...vehicleLookupResponse.data, policyVehicleId: vehicle.id, - vin: this.selectedVehicleVin + vin: this.selectedVehicleVin, + fleetNumber: vehicle.fleetNumber, + fleetUnitNumber: vehicle.fleetUnitNumber }); useMainStore().updateVehicleCoverage({ @@ -224,7 +228,9 @@ export default { make: vehicle.vehicleMake || '', model: vehicle.vehicleModel || '', style: vehicle.vehicleStyle || '', - vin: vehicle.vin + vin: vehicle.vin, + fleetNumber: vehicle.fleetNumber || '', + fleetUnitNumber: vehicle.fleetUnitNumber || '' }); this.policyVinFound = false; diff --git a/src/store/index.js b/src/store/index.js index a6a8258e..ba8472c9 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -88,7 +88,9 @@ export const getDefaultState = () => ({ canSafeliteService: null, skipVINLookup: null, skipPartQuestions: null, - vinRequired: null + vinRequired: null, + fleetNumber: null, + fleetUnitNumber: null }, damage: { isRepair: null, @@ -704,11 +706,15 @@ export const useMainStore = defineStore({ year: this.order.vehicle.year?.toString() ?? '', make: this.order.vehicle.make, model: this.order.vehicle.model, - vin: this.order.vehicle.vin + vin: this.order.vehicle.vin, + fleetNumber: this.order.vehicle.fleetNumber, + fleetUnitNumber: this.order.vehicle.fleetUnitNumber }, cause: this.order.policy.damageCause, damageDescription: this.order.policy.damageCause - } + }, + fleetNumber: this.order.vehicle.fleetNumber, + fleetUnitNumber: this.order.vehicle.fleetUnitNumber }; // Clients (i.e. USAA) may sometimes use member number, which is just policy number by a different name if (this.issConfig.useMemberNumber) { @@ -1728,7 +1734,9 @@ export const useMainStore = defineStore({ this.updateVehicle({ ...vehicleResponse.data, policyVehicleId: vehicle.id, - vin: vehicle.vin + vin: vehicle.vin, + fleetNumber: vehicle.fleetNumber, + fleetUnitNumber: vehicle.fleetUnitNumber }); this.updateVehicleCoverage({ noCoverage: noCoverageForSelectedVehicle(vehicle), @@ -1794,7 +1802,9 @@ export const useMainStore = defineStore({ this.updateVehicle({ ...vehicleResponse.data, policyVehicleId: vehicle.id, - vin: vehicle.vin + vin: vehicle.vin, + fleetNumber: vehicle.fleetNumber, + fleetUnitNumber: vehicle.fleetUnitNumber }); this.updateVehicleCoverage({ noCoverage: noCoverageForSelectedVehicle(vehicle), @@ -2103,6 +2113,7 @@ export const useMainStore = defineStore({ }, updateVehicle(vehicle) { + console.log('updateVehicle called with vehicle:', vehicle); // Assuming that the method caller pass all the properties. // otherwise need to check for undefined for every property. if (this.order.vehicle.carId !== vehicle.carId @@ -2126,6 +2137,8 @@ export const useMainStore = defineStore({ this.order.vehicle.skipVINLookup = vehicle.skipVINLookup; this.order.vehicle.skipPartQuestions = vehicle.skipPartQuestions; this.order.vehicle.vinRequired = vehicle.vinRequired; + this.order.vehicle.fleetNumber = vehicle.fleetNumber; + this.order.vehicle.fleetUnitNumber = vehicle.fleetUnitNumber; this.updateSupportingItems(null); this.updateVaps(null); @@ -2263,6 +2276,8 @@ export const useMainStore = defineStore({ this.order.vehicle.skipVINLookup = null; this.order.vehicle.skipPartQuestions = null; this.order.vehicle.vinRequired = null; + this.order.vehicle.fleetNumber = null; + this.order.vehicle.fleetUnitNumber = null; if (this.isBailout && this.bailoutCode === bailoutCode.HeavyTruckVehicle) { this.resetBailout(); diff --git a/src/store/store.spec.js b/src/store/store.spec.js index f8467737..31a1ae2f 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -136,6 +136,8 @@ describe('Store', () => { const imageUrl = getRandomString(50, 100); const imageVifNumber = getRandomInt(10000, 99999).toString(); const imageColor = getRandomString(4, 10); + const fleetNumber = getRandomString(1, 2); + const fleetUnitNumber = getRandomString(1, 2); const providedVehicle = { carId, category, @@ -145,7 +147,9 @@ describe('Store', () => { style, imageUrl, imageVifNumber, - imageVifColor: imageColor + imageVifColor: imageColor, + fleetNumber, + fleetUnitNumber }; const expectedVehicle = { @@ -157,7 +161,9 @@ describe('Store', () => { style, imageUrl, imageVifNumber, - imageColor + imageColor, + fleetNumber, + fleetUnitNumber }; // Act @@ -2611,7 +2617,9 @@ describe('Store', () => { vin: mockResponse.data.vehicle.vin, deductible: 100, repairWaived: false, - endorsements: ['OEM Approved'] + endorsements: ['OEM Approved'], + fleetNumber: getRandomString(1,2), + fleetUnitNumber: getRandomString(1,2) }; store.order.insuranceCoverage.coverageType = coverageType.Deductible; @@ -2630,7 +2638,9 @@ describe('Store', () => { expect(store.updateVehicle).toHaveBeenCalledWith({ ...mockVehicleLookupResponse.data, policyVehicleId: policyVehicle.id, - vin: policyVehicle.vin + vin: policyVehicle.vin, + fleetNumber: policyVehicle.fleetNumber, + fleetUnitNumber: policyVehicle.fleetUnitNumber }); expect(store.updateVehicleCoverage).toHaveBeenCalled(); }); From a81aca61bfdb44f2c6d6b32dbff0dd52d3748fe2 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Mon, 20 Jul 2026 17:12:49 -0400 Subject: [PATCH 2/4] INSR-10445: Keep fleetNumber and fleetUnitNumber if undefined in update This handles the rare (maybe impossible?) case where some kind of VIN lookup is needed for a policy vehicle --- src/store/index.js | 5 ++--- src/store/store.spec.js | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index ba8472c9..69f2e238 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -2113,7 +2113,6 @@ export const useMainStore = defineStore({ }, updateVehicle(vehicle) { - console.log('updateVehicle called with vehicle:', vehicle); // Assuming that the method caller pass all the properties. // otherwise need to check for undefined for every property. if (this.order.vehicle.carId !== vehicle.carId @@ -2137,8 +2136,8 @@ export const useMainStore = defineStore({ this.order.vehicle.skipVINLookup = vehicle.skipVINLookup; this.order.vehicle.skipPartQuestions = vehicle.skipPartQuestions; this.order.vehicle.vinRequired = vehicle.vinRequired; - this.order.vehicle.fleetNumber = vehicle.fleetNumber; - this.order.vehicle.fleetUnitNumber = vehicle.fleetUnitNumber; + this.order.vehicle.fleetNumber = vehicle.fleetNumber !== undefined ? vehicle.fleetNumber : this.order.vehicle.fleetNumber; + this.order.vehicle.fleetUnitNumber = vehicle.fleetUnitNumber !== undefined ? vehicle.fleetUnitNumber : this.order.vehicle.fleetUnitNumber; this.updateSupportingItems(null); this.updateVaps(null); diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 31a1ae2f..2e1ab266 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -2618,8 +2618,8 @@ describe('Store', () => { deductible: 100, repairWaived: false, endorsements: ['OEM Approved'], - fleetNumber: getRandomString(1,2), - fleetUnitNumber: getRandomString(1,2) + fleetNumber: getRandomString(1, 2), + fleetUnitNumber: getRandomString(1, 2) }; store.order.insuranceCoverage.coverageType = coverageType.Deductible; From 679a718be9434a82c35496eee2337a74e6e6f241 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Tue, 21 Jul 2026 10:42:14 -0400 Subject: [PATCH 3/4] INSR-10445: More tweaks to fleetNumber/fleetUnitNumber handling - Remove redundancy in claim registration payload - Allow these fields to be blanked out by the *-lookup pages --- src/store/index.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 69f2e238..d8433272 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -706,9 +706,7 @@ export const useMainStore = defineStore({ year: this.order.vehicle.year?.toString() ?? '', make: this.order.vehicle.make, model: this.order.vehicle.model, - vin: this.order.vehicle.vin, - fleetNumber: this.order.vehicle.fleetNumber, - fleetUnitNumber: this.order.vehicle.fleetUnitNumber + vin: this.order.vehicle.vin }, cause: this.order.policy.damageCause, damageDescription: this.order.policy.damageCause @@ -2136,8 +2134,8 @@ export const useMainStore = defineStore({ this.order.vehicle.skipVINLookup = vehicle.skipVINLookup; this.order.vehicle.skipPartQuestions = vehicle.skipPartQuestions; this.order.vehicle.vinRequired = vehicle.vinRequired; - this.order.vehicle.fleetNumber = vehicle.fleetNumber !== undefined ? vehicle.fleetNumber : this.order.vehicle.fleetNumber; - this.order.vehicle.fleetUnitNumber = vehicle.fleetUnitNumber !== undefined ? vehicle.fleetUnitNumber : this.order.vehicle.fleetUnitNumber; + this.order.vehicle.fleetNumber = vehicle.fleetNumber; + this.order.vehicle.fleetUnitNumber = vehicle.fleetUnitNumber; this.updateSupportingItems(null); this.updateVaps(null); From f6c29bad61f492adcfc8bf523dba7470229928e7 Mon Sep 17 00:00:00 2001 From: Alex Humphries Date: Tue, 21 Jul 2026 10:53:43 -0400 Subject: [PATCH 4/4] INSR-10445: More fleetNumber/fleetUnitNumber tweaks - Add to unit test for shape of registerClaim payload - Better handling for possible 0 values --- src/layouts/policy-vehicles/policy-vehicles.vue | 4 ++-- src/store/store.spec.js | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/layouts/policy-vehicles/policy-vehicles.vue b/src/layouts/policy-vehicles/policy-vehicles.vue index 45bd502e..2ccb7656 100644 --- a/src/layouts/policy-vehicles/policy-vehicles.vue +++ b/src/layouts/policy-vehicles/policy-vehicles.vue @@ -229,8 +229,8 @@ export default { model: vehicle.vehicleModel || '', style: vehicle.vehicleStyle || '', vin: vehicle.vin, - fleetNumber: vehicle.fleetNumber || '', - fleetUnitNumber: vehicle.fleetUnitNumber || '' + fleetNumber: vehicle.fleetNumber ?? '', + fleetUnitNumber: vehicle.fleetUnitNumber ?? '' }); this.policyVinFound = false; diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 2e1ab266..78345ff4 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -500,6 +500,8 @@ describe('Store', () => { replace: 500, repair: 0 }; + const fleetNumber = getRandomString(1, 2); + const fleetUnitNumber = getRandomString(1, 2); store.order.originalDeductible = { replace: originalDeductible.replace, repair: originalDeductible.repair @@ -509,6 +511,8 @@ describe('Store', () => { repair: currentDeductible.repair }; store.order.customer.companyCode = companyCode; + store.order.vehicle.fleetNumber = fleetNumber; + store.order.vehicle.fleetUnitNumber = fleetUnitNumber; globalMethods.callHttpClient = jest.fn().mockReturnValue(Promise.resolve({})); // Act @@ -520,7 +524,9 @@ describe('Store', () => { sourceSystem: applicationConfig.APPLICATION_NAME, policyInfo: expect.objectContaining({ company: companyCode - }) + }), + fleetNumber, + fleetUnitNumber }) })); });