From a4e853e528799f38defcbdf950745bcfae9dc13a Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 1 Apr 2026 13:49:06 -0400 Subject: [PATCH 1/3] CASH-2508 check externalparameterstate correctly CASH-2508 check externalparameterstate correctly. It should check more than the flag because parms can be optional. So make sure we're checking damage options stored in external params so the continue button is properly enabled --- src/layouts/vehicle-damage/vehicle-damage.vue | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index abad0da7d..e93e0fbd0 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -100,6 +100,7 @@ import store from "@/store"; import baseMixin from "@/mixins/base-mixin"; import { nextTick } from "vue"; import { getBoolFromString } from "@/helpers/boolean-helper"; +import { externalParameterStatus } from "@/constants/external-parameters"; // DEFINE VALIDATION RULES defineRule("replace-options-required", required(errorMessages.REPLACE_OPTIONS_REQUIRED)); @@ -143,7 +144,9 @@ export default { vm.$refs.backGlassOptions.initializeComponent( resultMap.damageOptions.backGlassOptions.availableReplacementOptions ); - if (store.getters.externalParameterState?.isExternalParameter) { + if (store.getters.externalParameterState?.isExternalParameter && + store.getters.externalParameterState?.isExternalParameter === externalParameterStatus.ACTIVE && + store.getters.externalParameterState.vehicleDamage?.damageType) { await nextTick(); const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); debugLog(`**** vehicle-damage is form valid: ${isValid} ****`); @@ -355,7 +358,9 @@ export default { ) { windShieldOptions.selectedWindshieldDamageType = damageLocationsSelected.REPLACE; - if (!store.getters.externalParameterState.isExternalParameter) { + if (!store.getters.externalParameterState.isExternalParameter || + store.getters.externalParameterState?.isExternalParameter !== externalParameterStatus.ACTIVE || + !store.getters.externalParameterState.vehicleDamage?.damageType) { windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.SINGLE ); @@ -666,12 +671,20 @@ export default { return this.$store.getters.requiresVerifiedRedirecting; }, isContinueEnabled() { - return ( + var isEnabled = ( this.isAnyDamageSelected && this.isWindshieldValid && this.isRearGlassValid && this.isSideGlassValid ); + if (!isEnabled) { + debugLog(`************************ isContinueEnabled: ${isEnabled} *****************************`); + debugLog(`**** this.isAnyDamageSelected: ${this.isAnyDamageSelected} ****`); + debugLog(`**** this.isWindshieldValid: ${this.isWindshieldValid} ****`); + debugLog(`**** this.isRearGlassValid: ${this.isRearGlassValid} ****`); + debugLog(`**** this.isSideGlassValid: ${this.isSideGlassValid} ****`); + } + return isEnabled; }, isAnyDamageSelected() { return this.selectedDamageLocations != null && this.selectedDamageLocations.length != 0; From a33149c621c5748515c7cc4246b92d42b5d7b4b7 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 1 Apr 2026 14:10:48 -0400 Subject: [PATCH 2/3] prettier --- src/layouts/vehicle-damage/vehicle-damage.vue | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index e93e0fbd0..ee8d3e074 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -144,9 +144,12 @@ export default { vm.$refs.backGlassOptions.initializeComponent( resultMap.damageOptions.backGlassOptions.availableReplacementOptions ); - if (store.getters.externalParameterState?.isExternalParameter && - store.getters.externalParameterState?.isExternalParameter === externalParameterStatus.ACTIVE && - store.getters.externalParameterState.vehicleDamage?.damageType) { + if ( + store.getters.externalParameterState?.isExternalParameter && + store.getters.externalParameterState?.isExternalParameter === + externalParameterStatus.ACTIVE && + store.getters.externalParameterState.vehicleDamage?.damageType + ) { await nextTick(); const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); debugLog(`**** vehicle-damage is form valid: ${isValid} ****`); @@ -358,9 +361,12 @@ export default { ) { windShieldOptions.selectedWindshieldDamageType = damageLocationsSelected.REPLACE; - if (!store.getters.externalParameterState.isExternalParameter || - store.getters.externalParameterState?.isExternalParameter !== externalParameterStatus.ACTIVE || - !store.getters.externalParameterState.vehicleDamage?.damageType) { + if ( + !store.getters.externalParameterState.isExternalParameter || + store.getters.externalParameterState?.isExternalParameter !== + externalParameterStatus.ACTIVE || + !store.getters.externalParameterState.vehicleDamage?.damageType + ) { windShieldOptions.selectedWindshieldReplaceOptions.push( damageLocationsSelected.SINGLE ); @@ -671,14 +677,15 @@ export default { return this.$store.getters.requiresVerifiedRedirecting; }, isContinueEnabled() { - var isEnabled = ( + var isEnabled = this.isAnyDamageSelected && this.isWindshieldValid && this.isRearGlassValid && - this.isSideGlassValid - ); + this.isSideGlassValid; if (!isEnabled) { - debugLog(`************************ isContinueEnabled: ${isEnabled} *****************************`); + debugLog( + `************************ isContinueEnabled: ${isEnabled} *****************************` + ); debugLog(`**** this.isAnyDamageSelected: ${this.isAnyDamageSelected} ****`); debugLog(`**** this.isWindshieldValid: ${this.isWindshieldValid} ****`); debugLog(`**** this.isRearGlassValid: ${this.isRearGlassValid} ****`); From b7dcd92c9e0e23971c760f5fa48ca2e869156307 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Wed, 1 Apr 2026 15:20:49 -0400 Subject: [PATCH 3/3] CASH-2508 tests CASH-2508 tests --- src/layouts/vehicle-damage/vehicle-damage.spec.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/layouts/vehicle-damage/vehicle-damage.spec.js b/src/layouts/vehicle-damage/vehicle-damage.spec.js index 7ea899fda..3b8e46d22 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.spec.js +++ b/src/layouts/vehicle-damage/vehicle-damage.spec.js @@ -17,6 +17,7 @@ import store from "@/store"; import { validate } from "vee-validate"; import { damageLocationsSelected } from "@/constants/damage-locations-selected.js"; import * as cookieHelper from "@/helpers/heritage-integration/cookie-helper"; +import { externalParameterStatus } from "@/constants/external-parameters"; // Mock our module for promises. jest.mock("@/helpers/layout-helper.js", () => ({ @@ -817,7 +818,11 @@ describe("vehicle-damage.vue", () => { describe("vehicle-damage.vue", () => { test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => { // Set up the store with isExternalParameter as true - store.getters.externalParameterState = { isExternalParameter: true }; + store.getters.externalParameterState = { + isExternalParameter: true, + isExternalParameter: externalParameterStatus.ACTIVE, + vehicleDamage: { damageType: "windshieldReplace" }, + }; store.getters.externalParameterDamage = { damageType: "windshieldReplace", isRepair: false,