Skip to content

Commit 554773e

Browse files
Require client engine & version for ODP Event Manager
1 parent 46c2720 commit 554773e

File tree

2 files changed

+14
-19
lines changed

2 files changed

+14
-19
lines changed

packages/optimizely-sdk/lib/plugins/odp/odp_event_manager.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ export interface IOdpEventManager {
4444
export class OdpEventManager implements IOdpEventManager {
4545
private readonly eventDispatcher: OdpEventDispatcher;
4646
private readonly logger: LogHandler;
47-
private readonly clientEngine?: string;
48-
private readonly clientVersion?: string;
47+
private readonly clientEngine: string;
48+
private readonly clientVersion: string;
4949

5050
public constructor({ eventDispatcher, logger, clientEngine, clientVersion }: {
5151
eventDispatcher: OdpEventDispatcher,
5252
logger: LogHandler,
53-
clientEngine?: string,
54-
clientVersion?: string,
53+
clientEngine: string,
54+
clientVersion: string,
5555
}) {
5656
this.eventDispatcher = eventDispatcher;
5757
this.logger = logger;
@@ -144,13 +144,8 @@ export class OdpEventManager implements IOdpEventManager {
144144
const data = new Map<string, unknown>();
145145
data.set('idempotence_id', uuid());
146146
data.set('data_source_type', 'sdk');
147-
148-
if (this.clientEngine) {
149-
data.set('data_source', this.clientEngine);
150-
}
151-
if (this.clientVersion) {
152-
data.set('data_source_version', this.clientVersion);
153-
}
147+
data.set('data_source', this.clientEngine);
148+
data.set('data_source_version', this.clientVersion);
154149

155150
sourceData.forEach((value, key) => data.set(key, value));
156151
return data;

packages/optimizely-sdk/tests/odpEventManager.spec.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ describe('OdpEventManager', () => {
125125
it('should log and discard events when event manager not running', () => {
126126
const logger = instance(mockLogger);
127127
const eventDispatcher = new OdpEventDispatcher({ odpConfig, apiManager: instance(mockApiManager), logger });
128-
const eventManager = new OdpEventManager({ eventDispatcher, logger });
128+
const eventManager = new OdpEventManager({ eventDispatcher, logger, clientEngine, clientVersion });
129129
// since we've not called start() then...
130130

131131
eventManager.sendEvent(EVENTS[0]);
@@ -144,7 +144,7 @@ describe('OdpEventManager', () => {
144144
logger,
145145
});
146146
eventDispatcher['state'] = STATE.RUNNING; // simulate dispatcher already in running state
147-
const eventManager = new OdpEventManager({ eventDispatcher, logger });
147+
const eventManager = new OdpEventManager({ eventDispatcher, logger, clientEngine, clientVersion });
148148

149149
eventManager.sendEvent(EVENTS[0]);
150150

@@ -154,7 +154,7 @@ describe('OdpEventManager', () => {
154154
it('should discard events with invalid data', () => {
155155
const logger = instance(mockLogger);
156156
const eventDispatcher = new OdpEventDispatcher({ odpConfig, apiManager: instance(mockApiManager), logger });
157-
const eventManager = new OdpEventManager({ eventDispatcher, logger });
157+
const eventManager = new OdpEventManager({ eventDispatcher, logger, clientEngine, clientVersion });
158158
// make an event with invalid data key-value entry
159159
const badEvent = new OdpEvent(
160160
't3',
@@ -184,7 +184,7 @@ describe('OdpEventManager', () => {
184184
});
185185
eventDispatcher['state'] = STATE.RUNNING; // simulate dispatcher running
186186
eventDispatcher['queue'].push(EVENTS[0]); // simulate event already in queue
187-
const eventManager = new OdpEventManager({ eventDispatcher, logger });
187+
const eventManager = new OdpEventManager({ eventDispatcher, logger, clientEngine, clientVersion });
188188

189189
// try adding the second event
190190
eventManager.sendEvent(EVENTS[1]);
@@ -220,7 +220,7 @@ describe('OdpEventManager', () => {
220220
batchSize: 10, // with batch size of 10...
221221
flushInterval: 250,
222222
});
223-
const eventManager = new OdpEventManager({ eventDispatcher, logger });
223+
const eventManager = new OdpEventManager({ eventDispatcher, logger, clientEngine, clientVersion });
224224

225225
eventManager.start();
226226
for (let i = 0; i < 25; i += 1) {
@@ -271,7 +271,7 @@ describe('OdpEventManager', () => {
271271
batchSize: 2, // batch size of 2
272272
flushInterval: 100,
273273
});
274-
const eventManager = new OdpEventManager({ eventDispatcher, logger });
274+
const eventManager = new OdpEventManager({ eventDispatcher, logger, clientEngine, clientVersion });
275275

276276
eventManager.start();
277277
// send 4 events
@@ -294,7 +294,7 @@ describe('OdpEventManager', () => {
294294
batchSize: 2, // batches of 2 with...
295295
flushInterval: 100,
296296
});
297-
const eventManager = new OdpEventManager({ eventDispatcher, logger });
297+
const eventManager = new OdpEventManager({ eventDispatcher, logger, clientEngine, clientVersion });
298298

299299
eventManager.start();
300300
// ...25 events should...
@@ -387,7 +387,7 @@ describe('OdpEventManager', () => {
387387
apiManager: instance(mockApiManager),
388388
logger,
389389
});
390-
const eventManager = new OdpEventManager({ eventDispatcher, logger });
390+
const eventManager = new OdpEventManager({ eventDispatcher, logger, clientEngine, clientVersion });
391391
const apiKey = 'testing-api-key';
392392
const apiHost = 'https://some.other.example.com';
393393
const segmentsToCheck = ['empty-cart', '1-item-cart'];

0 commit comments

Comments
 (0)