From d4fd61c74f85c6c10f6104d96f9fc4134e4aec72 Mon Sep 17 00:00:00 2001 From: Katie Date: Mon, 11 Jul 2022 09:09:53 -0400 Subject: [PATCH 1/5] CSR-710 WIP --- src/global-methods.js | 10 +++++++++- src/helpers/heritage-integration/cookie-helper.js | 4 +++- src/helpers/heritage-integration/navigation-helper.js | 5 +++-- src/layouts/estimate/estimate.vue | 1 + src/layouts/vin-lookup/vin-lookup.vue | 1 + src/router/index.js | 8 +++++++- 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/global-methods.js b/src/global-methods.js index 5e4d04ea3..d5a2eddf9 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -7,7 +7,15 @@ import { GaCategories, GaActions, GaLabels } from "@/constants/analytics"; export default { callHttpClient({ method, endpoint, payload, logApiCall = true }) { return new Promise((resolve, reject) => { - const cfDistroUrl = applicationConfig.CONSUMER_CF_DISTRO; + // const cfDistroUrl = applicationConfig.CONSUMER_CF_DISTRO; + + let cfDistroUrl = applicationConfig.CONSUMER_CF_DISTRO; + + if (endpoint.includes("parts")) + cfDistroUrl = "https://localhost:44335"; + else if (endpoint.includes("order")) + cfDistroUrl = "https://localhost:44346"; + const payloadAndAnalyticsData = Object.assign({}, payload, { AppName: "FixMyGlass" }); axios({ method: method, url: cfDistroUrl + endpoint, data: payloadAndAnalyticsData, crossDomain: true, responseType: {} }) diff --git a/src/helpers/heritage-integration/cookie-helper.js b/src/helpers/heritage-integration/cookie-helper.js index 5d681f17f..3a8614661 100644 --- a/src/helpers/heritage-integration/cookie-helper.js +++ b/src/helpers/heritage-integration/cookie-helper.js @@ -7,6 +7,7 @@ import { applicationConfig } from "@/constants/application-config"; */ export function updateOrCreateFunnelCookie() { const wasClaimRegistrationDelayed = getFunnelCookie()?.HasDelayedClaimRegistration; + const shouldSuppressConceptFunnel = getFunnelCookie()?.SuppressConceptFunnel; // Create the cookie document.cookie = `${cookieNames.FUNNEL_SESSION_INFO}={}; path=${applicationConfig.COOKIE_PATH}; ${getCookieDomainValue()};`; @@ -21,7 +22,8 @@ export function updateOrCreateFunnelCookie() { ReferralDate: store.getters.order.referralDate, ReferralCorrelationId: store.getters.order.referralCorrelationId, ReferralParentAccountNumber: store.getters.order.accountNumber, - HasDelayedClaimRegistration: wasClaimRegistrationDelayed + HasDelayedClaimRegistration: wasClaimRegistrationDelayed, + SuppressConceptFunnel: shouldSuppressConceptFunnel }); } diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index 9bf69ddcf..ee006bc8e 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -41,9 +41,10 @@ export async function getPageToRouteExistingOrderTo(toRoute = {}, existingHerita Used to navigate to the heritage funnel with the correct query string and url. */ -export async function navigateToHeritageFunnel() { +export async function navigateToHeritageFunnel(shouldSaveOrder = true) { // Create the order (or save existing order) when navigating to Heritage Funnel. - await saveOrder(); + if (shouldSaveOrder) + await saveOrder(); router.navigateToExternalUrl( externalUrls.HERITAGE_FUNNEL, diff --git a/src/layouts/estimate/estimate.vue b/src/layouts/estimate/estimate.vue index a57062593..02451f2a5 100644 --- a/src/layouts/estimate/estimate.vue +++ b/src/layouts/estimate/estimate.vue @@ -15,6 +15,7 @@ cmsWidgetName="AlertVinLookupQuestion" alertClass="" /> + E: {{ selectedValues }} 0, + isSelectedGlassAvailableForVehicle: true }; }, mounted() { diff --git a/src/router/index.js b/src/router/index.js index 2b2d09859..f46a4b91c 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -22,7 +22,6 @@ import analyticsMixin from "@/mixins/analytics-mixin"; import ComponentTest from "@/layouts/component-test/component-test.vue"; import FormTest from "@/layouts/form-test/form-test.vue"; - const routes = [ { path: "/component-test", // This is a temporary route for testing. @@ -44,6 +43,11 @@ const routes = [ await analyticsMixin.methods.initSession(); } + if (getFunnelCookie()?.SuppressConceptFunnel) { + await navigateToHeritageFunnel(false); + return next(false); + } + // If the saved session has timed out, clear the session, execute 404 logic. if (getFunnelCookie() !== null && !isSavedSessionStillActive()) { await baseMixin.methods.dispatchStoreAction(storeActions.RESET_STATE); @@ -219,6 +223,8 @@ function navigateToUrl(url, optionalQuery = {}) { externalUrl.searchParams.append(queryKey, optionalQuery[queryKey]); } + externalUrl.searchParams.append("experiments", "ConceptFunnel=ConceptFunnel_V1=ConceptFunnel_TEST=true"); + window.location.assign(externalUrl); } From 4ed0512b20a53f20201590ce037e1551f2780b1e Mon Sep 17 00:00:00 2001 From: Katie Date: Mon, 11 Jul 2022 15:23:50 -0400 Subject: [PATCH 2/5] CSR-710 Cleanup --- src/global-methods.js | 10 +--------- src/layouts/estimate/estimate.vue | 1 - 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/global-methods.js b/src/global-methods.js index d5a2eddf9..5e4d04ea3 100644 --- a/src/global-methods.js +++ b/src/global-methods.js @@ -7,15 +7,7 @@ import { GaCategories, GaActions, GaLabels } from "@/constants/analytics"; export default { callHttpClient({ method, endpoint, payload, logApiCall = true }) { return new Promise((resolve, reject) => { - // const cfDistroUrl = applicationConfig.CONSUMER_CF_DISTRO; - - let cfDistroUrl = applicationConfig.CONSUMER_CF_DISTRO; - - if (endpoint.includes("parts")) - cfDistroUrl = "https://localhost:44335"; - else if (endpoint.includes("order")) - cfDistroUrl = "https://localhost:44346"; - + const cfDistroUrl = applicationConfig.CONSUMER_CF_DISTRO; const payloadAndAnalyticsData = Object.assign({}, payload, { AppName: "FixMyGlass" }); axios({ method: method, url: cfDistroUrl + endpoint, data: payloadAndAnalyticsData, crossDomain: true, responseType: {} }) diff --git a/src/layouts/estimate/estimate.vue b/src/layouts/estimate/estimate.vue index 02451f2a5..a57062593 100644 --- a/src/layouts/estimate/estimate.vue +++ b/src/layouts/estimate/estimate.vue @@ -15,7 +15,6 @@ cmsWidgetName="AlertVinLookupQuestion" alertClass="" /> - E: {{ selectedValues }} Date: Mon, 11 Jul 2022 16:37:17 -0400 Subject: [PATCH 3/5] CSR-710 Remove experiment string --- src/router/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index f46a4b91c..4b9af02e7 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -222,8 +222,6 @@ function navigateToUrl(url, optionalQuery = {}) { for (const queryKey in optionalQuery) { externalUrl.searchParams.append(queryKey, optionalQuery[queryKey]); } - - externalUrl.searchParams.append("experiments", "ConceptFunnel=ConceptFunnel_V1=ConceptFunnel_TEST=true"); window.location.assign(externalUrl); } From ea207aac90bc948a447eaad900aace8d742f0254 Mon Sep 17 00:00:00 2001 From: Katie Date: Mon, 11 Jul 2022 16:46:26 -0400 Subject: [PATCH 4/5] CSR-710 Add/edit tests --- .../cookie-helper.spec.js | 3 +- .../navigation-helper.spec.js | 30 ++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/helpers/heritage-integration/cookie-helper.spec.js b/src/helpers/heritage-integration/cookie-helper.spec.js index 03fca51b5..a5857fd74 100644 --- a/src/helpers/heritage-integration/cookie-helper.spec.js +++ b/src/helpers/heritage-integration/cookie-helper.spec.js @@ -21,7 +21,8 @@ describe("cookies", () => { ReferralDate: testReferralDate, ReferralCorrelationId: testReferralCorrelationId, ShouldResetState: testShouldResetState, - DidHeritageFunnelUpdateLast: testDidHeritageFunnelUpdateLast + DidHeritageFunnelUpdateLast: testDidHeritageFunnelUpdateLast, + SuppressConceptFunnel: true } setupCookies({ funnelCookieValue: JSON.stringify(testCookieValue) }); diff --git a/src/helpers/heritage-integration/navigation-helper.spec.js b/src/helpers/heritage-integration/navigation-helper.spec.js index e212284b8..02873166c 100644 --- a/src/helpers/heritage-integration/navigation-helper.spec.js +++ b/src/helpers/heritage-integration/navigation-helper.spec.js @@ -328,7 +328,7 @@ describe("navigateToHeritageFunnel", () => { // Assert expect(saveOrderFunction).toHaveBeenCalled(); - // Should alway save before we navigate to heritage + // Should save before we navigate to heritage by default const saveOrderFunctionCallOrder = saveOrderFunction.mock.invocationCallOrder[0]; const routerNavigateFunctionCallOrder = router.navigateToExternalUrl.mock.invocationCallOrder[0]; expect(saveOrderFunctionCallOrder).toBeLessThan(routerNavigateFunctionCallOrder); @@ -367,4 +367,32 @@ describe("navigateToHeritageFunnel", () => { }) ); }); + + test("should not save order, but should still navigate", async () => { + // Arrange + const mockReferralNumber = "2"; + const mockCorrelationId = "55"; + const mockReferralDate = "2022"; + + const mockOrderInfo = getMockOrderInfo(mockReferralNumber, mockCorrelationId, mockReferralDate); + + const mockData = { + actionList: [{ + actionName: storeActions.SAVE_ORDER, + data: mockOrderInfo, + }] + } + + setupMocksForJsFiles(mockData); + const saveOrderFunction = jest.spyOn(orderHelper, "saveOrder"); + router.navigateToExternalUrl = jest.fn(); + + // Act + await navigateToHeritageFunnel(false); + + // Assert + expect(saveOrderFunction).not.toHaveBeenCalled(); + expect(router.navigateToExternalUrl).toHaveBeenCalled(); + saveOrderFunction.mockRestore(); + }); }); \ No newline at end of file From c9411920320906eb65bf841cde4a7ecc02e716d4 Mon Sep 17 00:00:00 2001 From: Katie Date: Tue, 12 Jul 2022 08:26:11 -0400 Subject: [PATCH 5/5] CSR-710 Add curly brackets to if --- src/helpers/heritage-integration/navigation-helper.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index ee006bc8e..6c735c775 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -43,8 +43,9 @@ export async function getPageToRouteExistingOrderTo(toRoute = {}, existingHerita export async function navigateToHeritageFunnel(shouldSaveOrder = true) { // Create the order (or save existing order) when navigating to Heritage Funnel. - if (shouldSaveOrder) + if (shouldSaveOrder) { await saveOrder(); + } router.navigateToExternalUrl( externalUrls.HERITAGE_FUNNEL,