Skip to content

Commit 2e8ff36

Browse files
feat: Expose Integration Name to Kit Object (#58)
1 parent 3e67608 commit 2e8ff36

2 files changed

Lines changed: 90 additions & 1 deletion

File tree

src/Rokt-Kit.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ var constructor = function () {
3939
self.placementEventMappingLookup = {};
4040
self.placementEventAttributeMappingLookup = {};
4141
self.eventQueue = [];
42+
self.integrationName = null;
4243

4344
function getEventAttributeValue(event, eventAttributeKey) {
4445
var attributes = event && event.EventAttributes;
@@ -249,9 +250,10 @@ var constructor = function () {
249250
{},
250251
window.mParticle.Rokt.launcherOptions || {}
251252
);
252-
launcherOptions.integrationName = generateIntegrationName(
253+
self.integrationName = generateIntegrationName(
253254
launcherOptions.integrationName
254255
);
256+
launcherOptions.integrationName = self.integrationName;
255257

256258
if (testMode) {
257259
self.testHelpers = {

test/src/tests.js

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,93 @@ describe('Rokt Forwarder', () => {
317317
);
318318
});
319319

320+
it('should set integrationName on kit instance after attaching', async () => {
321+
window.Rokt = new MockRoktForwarder();
322+
window.mParticle.Rokt = window.Rokt;
323+
window.mParticle.Rokt.attachKitCalled = false;
324+
325+
window.mParticle.Rokt.attachKit = async (kit) => {
326+
window.mParticle.Rokt.attachKitCalled = true;
327+
window.mParticle.Rokt.kit = kit;
328+
return Promise.resolve();
329+
};
330+
331+
await mParticle.forwarder.init(
332+
{
333+
accountId: '123456',
334+
},
335+
reportService.cb,
336+
true
337+
);
338+
339+
// Wait for initialization to complete
340+
await waitForCondition(() => window.mParticle.Rokt.isInitialized);
341+
342+
window.mParticle.Rokt.kit.integrationName.should.equal(
343+
`${sdkVersion}_${kitVersion}`
344+
);
345+
});
346+
347+
it('should set integrationName on kit instance with custom name when provided', async () => {
348+
const customName = 'myCustomName';
349+
350+
window.Rokt = new MockRoktForwarder();
351+
window.mParticle.Rokt = window.Rokt;
352+
window.mParticle.Rokt.attachKitCalled = false;
353+
354+
window.mParticle.Rokt.attachKit = async (kit) => {
355+
window.mParticle.Rokt.attachKitCalled = true;
356+
window.mParticle.Rokt.kit = kit;
357+
return Promise.resolve();
358+
};
359+
360+
window.mParticle.Rokt.launcherOptions = {
361+
integrationName: customName,
362+
};
363+
364+
await mParticle.forwarder.init(
365+
{
366+
accountId: '123456',
367+
},
368+
reportService.cb,
369+
true
370+
);
371+
372+
// Wait for initialization to complete
373+
await waitForCondition(() => window.mParticle.Rokt.isInitialized);
374+
375+
window.mParticle.Rokt.kit.integrationName.should.equal(
376+
`${sdkVersion}_${kitVersion}_${customName}`
377+
);
378+
});
379+
380+
it('should have integrationName available on kit after initialization', async () => {
381+
window.Rokt = new MockRoktForwarder();
382+
window.mParticle.Rokt = window.Rokt;
383+
window.mParticle.Rokt.attachKitCalled = false;
384+
385+
window.mParticle.Rokt.attachKit = async (kit) => {
386+
window.mParticle.Rokt.attachKitCalled = true;
387+
window.mParticle.Rokt.kit = kit;
388+
return Promise.resolve();
389+
};
390+
391+
await mParticle.forwarder.init(
392+
{
393+
accountId: '123456',
394+
},
395+
reportService.cb,
396+
true
397+
);
398+
399+
// Wait for initialization to complete
400+
await waitForCondition(() => window.mParticle.Rokt.isInitialized);
401+
402+
window.mParticle.Rokt.attachKitCalled.should.equal(true);
403+
window.mParticle.Rokt.kit.integrationName.should.be.a.String();
404+
window.mParticle.Rokt.kit.integrationName.should.not.be.empty();
405+
});
406+
320407
it('should not mutate the global launcherOptions object during initialization', async () => {
321408
const originalIntegrationName = 'globalIntegrationName';
322409

0 commit comments

Comments
 (0)