From 4ceae331dc47515c0e6f2e9621f83b117622e613 Mon Sep 17 00:00:00 2001 From: Mitch Prewitt <44011584+mprew97@users.noreply.github.com> Date: Wed, 6 Nov 2024 15:23:54 -0500 Subject: [PATCH] [MOB-10123]: Clear Anon Data When Replay is False (#478) * clear anon data on user initialization * clear anon data even if replay is false * update tests * oop * Update authorization.ts --- .../tests/userMergeScenarios.test.ts | 11 ++++------- src/authorization/authorization.ts | 8 ++++++++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/anonymousUserTracking/tests/userMergeScenarios.test.ts b/src/anonymousUserTracking/tests/userMergeScenarios.test.ts index 39eee7fb..88dcce04 100644 --- a/src/anonymousUserTracking/tests/userMergeScenarios.test.ts +++ b/src/anonymousUserTracking/tests/userMergeScenarios.test.ts @@ -135,9 +135,8 @@ describe('UserMergeScenariosTests', () => { const removeItemCalls = localStorageMock.removeItem.mock.calls.filter( (call) => call[0] === SHARED_PREFS_EVENT_LIST_KEY ); - // count 1 means it did not remove item and so syncEvents was NOT called - // because removeItem gets called one time for the key in case of logout - expect(removeItemCalls.length).toBe(1); + // count 2 is because we want to remove the anon user and remove anon details + expect(removeItemCalls.length).toBe(2); const mergePostRequestData = mockRequest.history.post.find( (req) => req.url === ENDPOINT_MERGE_USER ); @@ -175,7 +174,6 @@ describe('UserMergeScenariosTests', () => { (call) => call[0] === SHARED_PREFS_EVENT_LIST_KEY ); // count 2 means it removed items and so syncEvents was called - // because removeItem gets called one time for // the key in case of logout and 2nd time on syncevents expect(removeItemCalls.length).toBe(2); @@ -574,9 +572,8 @@ describe('UserMergeScenariosTests', () => { const removeItemCalls = localStorageMock.removeItem.mock.calls.filter( (call) => call[0] === SHARED_PREFS_EVENT_LIST_KEY ); - // count 1 means it did not remove item and so syncEvents was NOT called - // because removeItem gets called one time for the key in case of logout - expect(removeItemCalls.length).toBe(1); + // count 2 is because we want to remove the anon user and remove anon details + expect(removeItemCalls.length).toBe(2); const mergePostRequestData = mockRequest.history.post.find( (req) => req.url === ENDPOINT_MERGE_USER ); diff --git a/src/authorization/authorization.ts b/src/authorization/authorization.ts index e919368a..c579a977 100644 --- a/src/authorization/authorization.ts +++ b/src/authorization/authorization.ts @@ -489,6 +489,8 @@ export function initialize( initializeEmailUser(email); if (replay) { syncEvents(); + } else { + anonUserManager.removeAnonSessionCriteriaData(); } return Promise.resolve(); } @@ -517,6 +519,8 @@ export function initialize( initializeUserId(userId); if (replay) { syncEvents(); + } else { + anonUserManager.removeAnonSessionCriteriaData(); } return Promise.resolve(); } @@ -871,6 +875,8 @@ export function initialize( initializeEmailUser(email); if (replay) { syncEvents(); + } else { + anonUserManager.removeAnonSessionCriteriaData(); } return token; } @@ -914,6 +920,8 @@ export function initialize( initializeUserId(userId); if (replay) { syncEvents(); + } else { + anonUserManager.removeAnonSessionCriteriaData(); } return token; }