From d76814ca1432d453e869b2bd3bc46f0f4c2710f0 Mon Sep 17 00:00:00 2001 From: Katie Date: Fri, 20 May 2022 09:11:17 -0400 Subject: [PATCH 1/2] CSR-628 Add and check wasDelayedClaimRegistration field --- src/helpers/heritage-integration/cookie-helper.js | 3 +++ src/layouts/vehicle-damage/vehicle-damage.vue | 3 ++- src/layouts/vin-lookup/vin-lookup.vue | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/helpers/heritage-integration/cookie-helper.js b/src/helpers/heritage-integration/cookie-helper.js index e69c21419..f3b730f90 100644 --- a/src/helpers/heritage-integration/cookie-helper.js +++ b/src/helpers/heritage-integration/cookie-helper.js @@ -6,6 +6,8 @@ import { applicationConfig } from "@/constants/application-config"; Will update the cookie if present, or create a new one if not. */ export function updateOrCreateFunnelCookie() { + const wasClaimRegistrationDelayed = getFunnelCookie()?.HasDelayedClaimRegistration; + // Create the cookie document.cookie = `${cookieNames.FUNNEL_SESSION_INFO}={}; path=${applicationConfig.COOKIE_PATH}; ${getCookieDomainValue()};`; @@ -19,6 +21,7 @@ export function updateOrCreateFunnelCookie() { ReferralDate: store.getters.order.referralDate, ReferralCorrelationId: store.getters.order.referralCorrelationId, ReferralParentAccountNumber: store.getters.order.accountNumber, + HasDelayedClaimRegistration: wasClaimRegistrationDelayed }); } diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index ddeae5bec..c93732b01 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -87,6 +87,7 @@ import { required } from "@/helpers/validation-rules"; import { errorMessages } from "@/constants/error-messages"; import { damageLocationsCms } from "@/constants/damage-locations-cms.js"; import { damageLocationsSelected } from "@/constants/damage-locations-selected.js"; +import { getFunnelCookie } from "@/helpers/heritage-integration/cookie-helper"; import store from "@/store"; import baseMixin from "@/mixins/base-mixin"; @@ -405,7 +406,7 @@ export default { return this.$route.params[this.routerParams.DISPLAY_VEHICLE_CHANGE_ALERT]; }, shouldHideBackButton(){ - return this.$store.getters.payment.insuranceCoverage.isVerified; + return this.$store.getters.payment.insuranceCoverage.isVerified || getFunnelCookie().HasDelayedClaimRegistration; } }, diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 6476ac1a9..80fca817d 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -140,6 +140,7 @@ import { getDamageString, getIsWindshieldOnly, isGlassAvailableForCarId } from " import { required, regex } from "@/helpers/validation-rules"; import { Form, defineRule } from "vee-validate"; import { navigateAfterSaveToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; +import { getFunnelCookie } from "@/helpers/heritage-integration/cookie-helper"; // DEFINE VALIDATION RULES defineRule("zip-required", required(errorMessages.SERVICE_ZIP_REQUIRED)); @@ -236,7 +237,7 @@ export default { getIsWindshieldOnly()) }, isVinFieldReadOnly(){ - return this.$store.getters.payment.insuranceCoverage.isVerified; + return this.$store.getters.payment.insuranceCoverage.isVerified || getFunnelCookie().HasDelayedClaimRegistration; }, }, methods: { From 2d397d8607f68fcf7296ba5a5d0929a36769f7c2 Mon Sep 17 00:00:00 2001 From: Katie Date: Fri, 20 May 2022 10:26:39 -0400 Subject: [PATCH 2/2] CSr-628 Fix tests --- src/layouts/vehicle-damage/vehicle-damage.spec.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/layouts/vehicle-damage/vehicle-damage.spec.js b/src/layouts/vehicle-damage/vehicle-damage.spec.js index b722fccbf..0ce0fe085 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.spec.js +++ b/src/layouts/vehicle-damage/vehicle-damage.spec.js @@ -18,6 +18,7 @@ import store from "@/store"; import { validate } from "vee-validate"; import { damageLocationsSelected } from "@/constants/damage-locations-selected.js"; import { routerParams } from "@/router/router-constants/router-params"; +import * as cookieHelper from "@/helpers/heritage-integration/cookie-helper"; // Mock our module for promises. jest.mock("@/helpers/layout-helper.js", () => ({ @@ -29,6 +30,11 @@ jest.mock("@/helpers/cms-content-helper", () => ({ fetchCmsContentForPage: jest.fn(), })); +// Mock getFunnelCookie +jest.mock("@/helpers/heritage-integration/cookie-helper", () => ({ + getFunnelCookie: jest.fn(), +})); + // Mock Store jest.mock("@/store", () => ({ commit: jest.fn(), @@ -653,6 +659,10 @@ describe("vehicle-damage.vue", () => { }) }); +describe("vehicle-damage.vue wasDelayedClaimRegistration", () => { + test.todo("if wasDelayedClaimRegistration, should hide back button") +}); + // THE FOLLOWING TEST IS NOT NECESSARILY REQUIRED FOR COVERAGE // BUT KEEP FOR AN EXAMPLE OF A VALIDATION TEST // @@ -741,6 +751,7 @@ function setupMocks({pageHeaderWidgetHeaderText, mountOptionsMockData}) { settleAllPromises.mockImplementation(() => apiPromise); fetchCmsContentForPage.mockImplementation(() => Promise.resolve()); + cookieHelper.getFunnelCookie = jest.spyOn(cookieHelper, "getFunnelCookie").mockReturnValue({}); //Mock damage initialize methods damageLocationQuestion.methods = {