Skip to content

Commit 1973f5c

Browse files
authored
fix: use mParticle config logging flag (#98)
1 parent 63267e1 commit 1973f5c

3 files changed

Lines changed: 71 additions & 12 deletions

File tree

src/Rokt-Kit.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ interface RoktKitSettings {
3131
onboardingExpProvider?: string;
3232
loggingUrl?: string;
3333
errorUrl?: string;
34-
isLoggingEnabled?: string | boolean;
3534
workspaceIdSyncApiKey?: string;
3635
}
3736

@@ -151,7 +150,7 @@ interface MParticleExtended {
151150
getInstance(): MParticleInstance;
152151
sessionManager?: { getSession(): string };
153152
_getActiveForwarders(): Array<{ name: string }>;
154-
config?: { isLocalLauncherEnabled?: boolean };
153+
config?: { isLocalLauncherEnabled?: boolean; isLoggingEnabled?: boolean };
155154
captureTiming?(metricName: string): void;
156155
forwarder?: RoktKit;
157156
loggedEvents?: Array<Record<string, unknown>>;
@@ -189,7 +188,7 @@ interface ForwarderRegistration {
189188
interface ReportingConfig {
190189
loggingUrl?: string;
191190
errorUrl?: string;
192-
isLoggingEnabled?: boolean | string;
191+
isLoggingEnabled: boolean;
193192
}
194193

195194
interface ErrorReport {
@@ -554,7 +553,7 @@ class ReportingTransport {
554553
accountId: string | null | undefined,
555554
rateLimiter?: RateLimiter,
556555
) {
557-
const isLoggingEnabled = config?.isLoggingEnabled === true || config?.isLoggingEnabled === 'true';
556+
const isLoggingEnabled = config.isLoggingEnabled;
558557
this._integrationName = integrationName || '';
559558
this._launcherInstanceGuid = launcherInstanceGuid;
560559
this._accountId = accountId || null;
@@ -1113,7 +1112,7 @@ class RoktKit implements KitInterface {
11131112
const reportingConfig: ReportingConfig = {
11141113
loggingUrl: kitSettings.loggingUrl,
11151114
errorUrl: kitSettings.errorUrl,
1116-
isLoggingEnabled: kitSettings.isLoggingEnabled === 'true' || kitSettings.isLoggingEnabled === true,
1115+
isLoggingEnabled: mp().config?.isLoggingEnabled === true,
11171116
};
11181117
const errorReportingService = new ErrorReportingService(
11191118
reportingConfig,

test/src/tests.spec.ts

Lines changed: 64 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6595,13 +6595,7 @@ describe('Rokt Forwarder', () => {
65956595
filteredUser: { getMPID: () => '123' },
65966596
};
65976597

6598-
await mParticle.forwarder.init(
6599-
{ accountId: '123456', isLoggingEnabled: 'true' },
6600-
reportService.cb,
6601-
true,
6602-
null,
6603-
{},
6604-
);
6598+
await mParticle.forwarder.init({ accountId: '123456' }, reportService.cb, true, null, {});
66056599

66066600
expect(registeredErrorService).not.toBeNull();
66076601
expect(registeredLoggingService).not.toBeNull();
@@ -6612,6 +6606,69 @@ describe('Rokt Forwarder', () => {
66126606
delete (window as any).mParticle._registerLoggingService;
66136607
});
66146608

6609+
it('should enable registered logging service from mParticle config', async () => {
6610+
let registeredLoggingService: any = null;
6611+
const fetchCalls: Array<{ url: string; options: any }> = [];
6612+
const originalFetch = window.fetch;
6613+
const originalRoktDomain = (window as any).ROKT_DOMAIN;
6614+
const originalConfig = (window as any).mParticle.config;
6615+
6616+
try {
6617+
(window as any).fetch = (url: string, options: any) => {
6618+
fetchCalls.push({ url, options });
6619+
return Promise.resolve({ ok: true });
6620+
};
6621+
(window as any).ROKT_DOMAIN = 'set';
6622+
(window as any).mParticle.config = {
6623+
...originalConfig,
6624+
isLoggingEnabled: true,
6625+
};
6626+
6627+
(window as any).mParticle._registerErrorReportingService = () => {};
6628+
(window as any).mParticle._registerLoggingService = (service: any) => {
6629+
registeredLoggingService = service;
6630+
};
6631+
6632+
(window as any).Rokt = new (MockRoktForwarder as any)();
6633+
(window as any).mParticle.Rokt = (window as any).Rokt;
6634+
(window as any).mParticle.Rokt.attachKit = async (kit: any) => {
6635+
(window as any).mParticle.Rokt.kit = kit;
6636+
};
6637+
(window as any).mParticle.Rokt.filters = {
6638+
userAttributesFilters: [],
6639+
filterUserAttributes: (attributes: any) => attributes,
6640+
filteredUser: { getMPID: () => '123' },
6641+
};
6642+
6643+
await mParticle.forwarder.init(
6644+
{ accountId: '123456', loggingUrl: 'test.com/v1/log' },
6645+
reportService.cb,
6646+
true,
6647+
null,
6648+
{},
6649+
);
6650+
6651+
expect(registeredLoggingService).not.toBeNull();
6652+
6653+
registeredLoggingService.log({
6654+
message: 'global logging flag is enabled',
6655+
code: ErrorCodesConst.UNKNOWN_ERROR,
6656+
});
6657+
6658+
expect(fetchCalls.length).toBe(1);
6659+
expect(fetchCalls[0].url).toBe('https://test.com/v1/log');
6660+
const body = JSON.parse(fetchCalls[0].options.body);
6661+
expect(body.additionalInformation.message).toBe('global logging flag is enabled');
6662+
expect(body.code).toBe(ErrorCodesConst.UNKNOWN_ERROR);
6663+
} finally {
6664+
window.fetch = originalFetch;
6665+
(window as any).ROKT_DOMAIN = originalRoktDomain;
6666+
(window as any).mParticle.config = originalConfig;
6667+
delete (window as any).mParticle._registerErrorReportingService;
6668+
delete (window as any).mParticle._registerLoggingService;
6669+
}
6670+
});
6671+
66156672
it('should not throw when registration methods do not exist', async () => {
66166673
delete (window as any).mParticle._registerErrorReportingService;
66176674
delete (window as any).mParticle._registerLoggingService;

test/vitest.setup.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
(globalThis as any).mParticle.forwarder = new forwarder.constructor();
1212
},
1313
Rokt: {},
14+
config: {
15+
isLoggingEnabled: true,
16+
},
1417
EventType: { Other: 8 },
1518
getEnvironment: () => 'development',
1619
getVersion: () => '1.2.3',

0 commit comments

Comments
 (0)