Merge pull request #3128 from Safelite/nation/CASH-2508

CASH-2508 check externalparameterstate correctly
This commit is contained in:
CarlNation 2026-04-01 15:31:41 -04:00 committed by GitHub
commit 2e5080ae21
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 31 additions and 6 deletions

View file

@ -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,

View file

@ -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,12 @@ 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 +361,12 @@ 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 +677,21 @@ export default {
return this.$store.getters.requiresVerifiedRedirecting;
},
isContinueEnabled() {
return (
var isEnabled =
this.isAnyDamageSelected &&
this.isWindshieldValid &&
this.isRearGlassValid &&
this.isSideGlassValid
);
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;