Skip to content

Commit 34a7bf0

Browse files
[FSSDK-9152] Fix "client_initialized" event not firing (#820)
1 parent 43cb6ea commit 34a7bf0

File tree

3 files changed

+36
-6
lines changed

3 files changed

+36
-6
lines changed

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -247,11 +247,6 @@ export abstract class OdpEventManager implements IOdpEventManager {
247247
return;
248248
}
249249

250-
if (!this.odpConfig.isReady()) {
251-
this.logger.log(LogLevel.DEBUG, 'Unable to Process ODP Event. ODPConfig is not ready.');
252-
return;
253-
}
254-
255250
if (this.queue.length >= this.queueSize) {
256251
this.logger.log(
257252
LogLevel.WARNING,

packages/optimizely-sdk/lib/index.browser.tests.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -903,6 +903,40 @@ describe('javascript-sdk (Browser)', function() {
903903

904904
sinon.assert.notCalled(logger.error);
905905
});
906+
907+
it('should send odp client_initialized on client instantiation', async () => {
908+
const odpConfig = new OdpConfig();
909+
const apiManager = new BrowserOdpEventApiManager(mockRequestHandler, logger);
910+
sinon.spy(apiManager, 'sendEvents');
911+
const eventManager = new BrowserOdpEventManager({
912+
odpConfig,
913+
apiManager,
914+
logger,
915+
});
916+
const datafile = testData.getOdpIntegratedConfigWithSegments();
917+
const client = optimizelyFactory.createInstance({
918+
datafile,
919+
errorHandler: fakeErrorHandler,
920+
eventDispatcher: fakeEventDispatcher,
921+
eventBatchSize: null,
922+
logger,
923+
odpOptions: {
924+
odpConfig,
925+
eventManager,
926+
},
927+
});
928+
929+
const readyData = await client.onReady();
930+
assert.equal(readyData.success, true);
931+
assert.isUndefined(readyData.reason);
932+
933+
clock.tick(100);
934+
935+
const [,,events] = apiManager.sendEvents.getCall(0).args;
936+
const [firstEvent] = events;
937+
assert.equal(firstEvent.action, 'client_initialized');
938+
assert.equal(firstEvent.type, 'fullstack');
939+
});
906940
});
907941
});
908942
});

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,8 @@ describe('OdpEventManager', () => {
168168

169169
eventManager.sendEvent(EVENTS[0]);
170170

171-
verify(mockLogger.log(LogLevel.DEBUG, 'Unable to Process ODP Event. ODPConfig is not ready.')).once();
171+
// In a Node context, the events should be discarded
172+
verify(mockLogger.log(LogLevel.WARNING, 'ODPConfig not ready. Discarding events in queue.')).once();
172173
});
173174

174175
it('should discard events with invalid data', () => {

0 commit comments

Comments
 (0)