From e316378d2c972ae6df97854f3be2e340eda7a4e0 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Fri, 21 Apr 2023 10:14:35 -0400 Subject: [PATCH] CSR-1338 If there is no windshield selected then do not require a vin lookup --- src/helpers/damage-helper.js | 6 ++++++ src/helpers/heritage-integration/navigation-helper.js | 7 ++++--- src/helpers/heritage-integration/navigation-helper.spec.js | 4 ++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/helpers/damage-helper.js b/src/helpers/damage-helper.js index 22e312939..91546c3e2 100644 --- a/src/helpers/damage-helper.js +++ b/src/helpers/damage-helper.js @@ -1,6 +1,7 @@ import store from "@/store"; import baseMixin from "@/mixins/base-mixin.js"; import { storeActions } from "@/constants/store-actions"; +import { damageLocationsSelected as glassLocations } from "@/constants/damage-locations-selected"; export function getDamageString() { // If it's a repair it's always a windshield. @@ -45,6 +46,11 @@ export function getIsWindshieldOnly() { return returnString; } +export function hasWindshield() { + const windshieldMatches = store.getters.order.damage.glassToReplace?.filter((glassToReplace) => glassToReplace.glassLocation === glassLocations.WINDSHIELD) ?? []; + return windshieldMatches.length > 0; +} + export async function isGlassAvailableForCarId(carId) { const newGlassOptions = await baseMixin.methods.dispatchStoreAction( storeActions.GET_DAMAGE_OPTIONS, diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index 0e756a8a4..6cbed862b 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -7,6 +7,7 @@ import { storeActions } from "@/constants/store-actions.js"; import { settleAllPromises } from "@/helpers/layout-helper"; import experimentMixin from "@/mixins/experiment-mixin"; import { experimentSettings } from "@/constants/experiments"; +import { hasWindshield } from "@/helpers/damage-helper"; import store from "@/store"; import router from "@/router"; @@ -72,7 +73,7 @@ export async function skipVinLookup() { return ( store.getters.damage.isRepair || - isVinOptionalVehicle || + isVinOptionalVehicle || !hasWindshield() || experimentMixin.methods.hasSettingEqualTo(experimentSettings.SUPPRESS_VIN_CAPTURE, "true") ); } @@ -83,8 +84,8 @@ export async function skipVinLookupNotRepair() { : false; return ( - !store.getters.damage.isRepair && - (isVinOptionalVehicle || + !store.getters.damage.isRepair && + (isVinOptionalVehicle || !hasWindshield() || experimentMixin.methods.hasSettingEqualTo( experimentSettings.SUPPRESS_VIN_CAPTURE, "true" diff --git a/src/helpers/heritage-integration/navigation-helper.spec.js b/src/helpers/heritage-integration/navigation-helper.spec.js index f9b3b1017..0322631f3 100644 --- a/src/helpers/heritage-integration/navigation-helper.spec.js +++ b/src/helpers/heritage-integration/navigation-helper.spec.js @@ -135,7 +135,7 @@ describe("getPageToRouteExistingOrderTo", () => { expect(result).toBe(fmgPageValues.VEHICLE_DAMAGE); }); - test("user has YMMS and no vehicle questions > should return vin-lookup", async () => { + test("user has YMMS and no vehicle questions > should return estimate", async () => { // Arrange const toRoute = { query: {}, @@ -172,7 +172,7 @@ describe("getPageToRouteExistingOrderTo", () => { const result = await getPageToRouteExistingOrderTo(toRoute, false); //Assert - expect(result).toBe(fmgPageValues.VIN_LOOKUP); + expect(result).toBe(fmgPageValues.ESTIMATE); }); test("user has YMMS but no questions or carId > should return estimate", async () => {