From febbe96534381608d42e4b74fedb615d0e5d747b Mon Sep 17 00:00:00 2001 From: Katie Date: Fri, 12 Aug 2022 13:00:34 -0400 Subject: [PATCH 1/2] CSR-514 Add condition back to router --- src/router/index.js | 12 +++++++----- src/store/index.js | 5 ----- src/store/store.spec.js | 32 -------------------------------- 3 files changed, 7 insertions(+), 42 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index d14a692f0..afc5b6074 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -270,11 +270,13 @@ function arePagePrerequisitesValid(component) { // Run SiteEntry and PageEntry triggers for experiments function runExperiments(nextPage) { - baseMixin.methods.dispatchStoreAction(storeActions.RUN_EXPERIMENTS_FOR_TRIGGER, { - userId: getDeviceIdValue(), - triggerEvent: experimentTriggers.SITE_ENTRY, - triggerValue: applicationConfig.SITE_ENTRY_TRIGGER_VALUE - }) + if (!store.getters.applicationUser.triggeredSiteEntry) { + baseMixin.methods.dispatchStoreAction(storeActions.RUN_EXPERIMENTS_FOR_TRIGGER, { + userId: getDeviceIdValue(), + triggerEvent: experimentTriggers.SITE_ENTRY, + triggerValue: applicationConfig.SITE_ENTRY_TRIGGER_VALUE + }) + } baseMixin.methods.dispatchStoreAction(storeActions.RUN_EXPERIMENTS_FOR_TRIGGER, { userId: getDeviceIdValue(), diff --git a/src/store/index.js b/src/store/index.js index 6e97cc9f6..6aeca59eb 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -648,11 +648,6 @@ export const actions = { runExperimentsForTrigger(context, { userId, triggerEvent, triggerValue }) { if (triggerEvent == experimentTriggers.SITE_ENTRY) { - // If site entry event was already triggered, don't rerun experiments - if (context.getters.applicationUser.triggeredSiteEntry) { - return; - } - context.commit(storeMutations.UPDATE_TRIGGERED_SITE_ENTRY, true); } diff --git a/src/store/store.spec.js b/src/store/store.spec.js index c3162b878..a30635b24 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -1114,38 +1114,6 @@ describe("Actions", () => { expect(globalMethods.callHttpClient).toHaveBeenCalled(); }); - test("runExperimentsForTrigger is called twice with triggerEvent == SiteEntry => only update store's triggeredSiteEntry value once", () => { - // Arrange - const context = state; - context.commit = jest.fn().mockImplementation((storeMutation, value) => mutations[storeMutation](context, value)); - context.getters = { - ...getters, - applicationUser: getters.applicationUser(context) - }; - expect(context.commit).toHaveBeenCalledTimes(0); - - // Act - actions.runExperimentsForTrigger(context, { - triggerEvent: experimentTriggers.SITE_ENTRY, - }); - - // Assert - expect(context.commit).toHaveBeenCalledTimes(1); - expect(context.commit).toHaveBeenCalledWith(storeMutations.UPDATE_TRIGGERED_SITE_ENTRY, true); - expect(context.getters.applicationUser.triggeredSiteEntry).toBe(true); - - // Act - actions.runExperimentsForTrigger(context, { - triggerEvent: experimentTriggers.SITE_ENTRY, - }); - - // Assert - expect(context.commit).toHaveBeenCalledTimes(1); - expect(context.getters.applicationUser.triggeredSiteEntry).toBe(true); - - expect(globalMethods.callHttpClient).toHaveBeenCalledTimes(1); - }); - test("triggerEvent is not SiteEntry => triggeredSiteEntry is false in store", () => { // Arrange const context = state; From 1216b121a8696602c8a921997bb574b939293f54 Mon Sep 17 00:00:00 2001 From: Katie Date: Fri, 12 Aug 2022 13:20:58 -0400 Subject: [PATCH 2/2] CSR-514 Move runExperiments to after we check the page to reroute to --- src/router/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index afc5b6074..ea4c5cbcc 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -37,8 +37,6 @@ const routes = [ return next(false); } - runExperiments(to.query.fmgPage); - // If the saved session has timed out, clear the session, execute 404 logic. if (getFunnelCookie() !== null && !isSavedSessionStillActive()) { await baseMixin.methods.dispatchStoreAction(storeActions.RESET_STATE); @@ -64,6 +62,8 @@ const routes = [ to.query.fmgPage = pageToRedirectTo; } + runExperiments(to.query.fmgPage); + // Process funnel cookie. updateOrCreateFunnelCookie();