Skip to content

Commit c7e0a7f

Browse files
committed
remove time on site tracking dependency on noTargeting privacy flag
1 parent 9fff9b8 commit c7e0a7f

File tree

3 files changed

+3
-70
lines changed

3 files changed

+3
-70
lines changed

src/constants.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,8 @@ export const HTTP_SERVER_ERROR = 500 as const;
236236

237237
export type PrivacyControl = 'functional' | 'targeting';
238238

239-
export type StorageTypes = 'SDKState' | 'TimeOnSite';
239+
export type StorageTypes = 'SDKState';
240240

241241
export const StoragePrivacyMap: Record<StorageTypes, PrivacyControl> = {
242-
SDKState: 'functional',
243-
TimeOnSite: 'targeting',
242+
SDKState: 'functional'
244243
};

src/store.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -749,9 +749,7 @@ export default function Store(
749749

750750
if (workspaceToken) {
751751
this.SDKConfig.workspaceToken = workspaceToken;
752-
if (!this.getPrivacyFlag('TimeOnSite')) {
753-
mpInstance._timeOnSiteTimer = new ForegroundTimer(workspaceToken);
754-
}
752+
mpInstance._timeOnSiteTimer = new ForegroundTimer(workspaceToken);
755753
} else {
756754
mpInstance.Logger.warning(
757755
'You should have a workspaceToken on your config object for security purposes.'

test/jest/foregroundTimeTracker.spec.ts

Lines changed: 0 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
import ForegroundTimeTracker from '../../src/foregroundTimeTracker';
2-
import Store, { IStore } from '../../src/store';
3-
import { SDKInitConfig } from '../../src/sdkRuntimeModels';
4-
import { IMParticleWebSDKInstance } from '../../src/mp-instance';
52

63
describe('ForegroundTimeTracker', () => {
74
let foregroundTimeTracker: ForegroundTimeTracker;
@@ -493,65 +490,4 @@ describe('ForegroundTimeTracker', () => {
493490
expect(updatePersistenceSpy).toHaveBeenCalled();
494491
});
495492
});
496-
497-
describe('#privacy flags', () => {
498-
const workspaceToken = 'abcdef';
499-
const tosKey = `mprtcl-tos-${workspaceToken}`;
500-
let mockMPInstance: IMParticleWebSDKInstance;
501-
let store: IStore;
502-
503-
beforeEach(() => {
504-
jest.useFakeTimers({ now: Date.now(), advanceTimers: true });
505-
localStorage.clear();
506-
507-
mockMPInstance = {
508-
_Helpers: {
509-
createMainStorageName: () => `mprtcl-v4_${workspaceToken}`,
510-
createProductStorageName: () => `mprtcl-prodv4_${workspaceToken}`,
511-
Validators: { isFunction: () => true },
512-
extend: Object.assign,
513-
},
514-
_NativeSdkHelpers: { isWebviewEnabled: () => false },
515-
_Persistence: {
516-
update: jest.fn(),
517-
savePersistence: jest.fn(),
518-
getPersistence: () => ({ gs: {} }),
519-
},
520-
Logger: { verbose: jest.fn(), warning: jest.fn(), error: jest.fn() },
521-
Identity: { getCurrentUser: () => ({ getMPID: () => 'mpid' }) },
522-
_timeOnSiteTimer: undefined as any,
523-
} as unknown as IMParticleWebSDKInstance;
524-
525-
store = {} as IStore;
526-
(Store as any).call(store, {} as SDKInitConfig, mockMPInstance, 'apikey');
527-
mockMPInstance._Store = store;
528-
});
529-
530-
afterEach(() => {
531-
jest.useRealTimers();
532-
localStorage.clear();
533-
});
534-
535-
it('should track time on site when noTargeting is false by default', () => {
536-
store.processConfig({ workspaceToken } as SDKInitConfig);
537-
expect(mockMPInstance._timeOnSiteTimer).toBeDefined();
538-
jest.advanceTimersByTime(1000);
539-
mockMPInstance._timeOnSiteTimer.getTimeInForeground();
540-
expect(localStorage.getItem(tosKey)).not.toBeNull();
541-
});
542-
543-
it('should NOT track time on site when noTargeting is true', () => {
544-
store.processConfig({ workspaceToken, launcherOptions: { noTargeting: true } } as SDKInitConfig);
545-
expect(mockMPInstance._timeOnSiteTimer).toBeUndefined();
546-
expect(localStorage.getItem(tosKey)).toBeNull();
547-
});
548-
549-
it('should track time on site when noTargeting is false', () => {
550-
store.processConfig({ workspaceToken, launcherOptions: { noTargeting: false } } as SDKInitConfig);
551-
expect(mockMPInstance._timeOnSiteTimer).toBeDefined();
552-
jest.advanceTimersByTime(1000);
553-
mockMPInstance._timeOnSiteTimer.getTimeInForeground();
554-
expect(localStorage.getItem(tosKey)).not.toBeNull();
555-
});
556-
});
557493
});

0 commit comments

Comments
 (0)