@@ -22,11 +22,9 @@ import { LogHandler, LogLevel } from '../lib/modules/logging';
2222import { OdpEvent } from '../lib/plugins/odp/odp_event' ;
2323import { RequestHandler } from '../lib/utils/http_request_handler/http' ;
2424import { OdpEventDispatcher , STATE } from '../lib/plugins/odp/odp_event_dispatcher' ;
25- import { OptimizelyOptions } from '../lib/shared_types' ;
2625
2726const API_KEY = 'test-api-key' ;
2827const API_HOST = 'https://odp.example.com' ;
29- const MOCK_PROCESS_VERSION = 'v16.17.0' ;
3028const MOCK_IDEMPOTENCE_ID = 'c1dc758e-f095-4f09-9b49-172d74c53880' ;
3129const EVENTS : OdpEvent [ ] = [
3230 new OdpEvent (
@@ -50,6 +48,9 @@ const EVENTS: OdpEvent[] = [
5048 } ) ) ,
5149 ) ,
5250] ;
51+ // naming for object destructuring
52+ const clientEngine = 'javascript-sdk' ;
53+ const clientVersion = '4.9.2' ;
5354const PROCESSED_EVENTS : OdpEvent [ ] = [
5455 new OdpEvent (
5556 't1' ,
@@ -58,8 +59,8 @@ const PROCESSED_EVENTS: OdpEvent[] = [
5859 new Map ( Object . entries ( {
5960 'idempotence_id' : MOCK_IDEMPOTENCE_ID ,
6061 'data_source_type' : 'sdk' ,
61- 'data_source' : 'javascript-sdk' ,
62- 'data_source_version' : MOCK_PROCESS_VERSION ,
62+ 'data_source' : clientEngine ,
63+ 'data_source_version' : clientVersion ,
6364 'key-1' : 'value1' ,
6465 'key-2' : null ,
6566 'key-3' : 3.3 ,
@@ -73,8 +74,8 @@ const PROCESSED_EVENTS: OdpEvent[] = [
7374 new Map ( Object . entries ( {
7475 'idempotence_id' : MOCK_IDEMPOTENCE_ID ,
7576 'data_source_type' : 'sdk' ,
76- 'data_source' : 'javascript-sdk' ,
77- 'data_source_version' : MOCK_PROCESS_VERSION ,
77+ 'data_source' : clientEngine ,
78+ 'data_source_version' : clientVersion ,
7879 'key-2' : 'value2' ,
7980 } ) ) ,
8081 ) ,
@@ -109,28 +110,22 @@ describe('OdpEventManager', () => {
109110 let mockLogger : LogHandler ;
110111 let mockApiManager : RestApiManager ;
111112 let odpConfig : OdpConfig ;
112- let mockOptimizelyOptions : OptimizelyOptions ;
113113
114114 beforeAll ( ( ) => {
115115 mockLogger = mock < LogHandler > ( ) ;
116116 mockApiManager = mock < RestApiManager > ( ) ;
117117 odpConfig = new OdpConfig ( API_KEY , API_HOST , [ ] ) ;
118-
119- mockOptimizelyOptions = mock < OptimizelyOptions > ( ) ;
120- when ( mockOptimizelyOptions . clientEngine ) . thenReturn ( 'javascript-sdk' ) ;
121- when ( mockOptimizelyOptions . clientVersion ) . thenReturn ( '4.9.2' ) ;
122118 } ) ;
123119
124120 beforeEach ( ( ) => {
125121 resetCalls ( mockLogger ) ;
126122 resetCalls ( mockApiManager ) ;
127- resetCalls ( mockOptimizelyOptions ) ;
128123 } ) ;
129124
130125 it ( 'should log and discard events when event manager not running' , ( ) => {
131126 const logger = instance ( mockLogger ) ;
132127 const eventDispatcher = new OdpEventDispatcher ( { odpConfig, apiManager : instance ( mockApiManager ) , logger } ) ;
133- const eventManager = new OdpEventManager ( eventDispatcher , logger ) ;
128+ const eventManager = new OdpEventManager ( { eventDispatcher, logger } ) ;
134129 // since we've not called start() then...
135130
136131 eventManager . sendEvent ( EVENTS [ 0 ] ) ;
@@ -149,7 +144,7 @@ describe('OdpEventManager', () => {
149144 logger,
150145 } ) ;
151146 eventDispatcher [ 'state' ] = STATE . RUNNING ; // simulate dispatcher already in running state
152- const eventManager = new OdpEventManager ( eventDispatcher , logger ) ;
147+ const eventManager = new OdpEventManager ( { eventDispatcher, logger } ) ;
153148
154149 eventManager . sendEvent ( EVENTS [ 0 ] ) ;
155150
@@ -159,7 +154,7 @@ describe('OdpEventManager', () => {
159154 it ( 'should discard events with invalid data' , ( ) => {
160155 const logger = instance ( mockLogger ) ;
161156 const eventDispatcher = new OdpEventDispatcher ( { odpConfig, apiManager : instance ( mockApiManager ) , logger } ) ;
162- const eventManager = new OdpEventManager ( eventDispatcher , logger ) ;
157+ const eventManager = new OdpEventManager ( { eventDispatcher, logger } ) ;
163158 // make an event with invalid data key-value entry
164159 const badEvent = new OdpEvent (
165160 't3' ,
@@ -189,7 +184,7 @@ describe('OdpEventManager', () => {
189184 } ) ;
190185 eventDispatcher [ 'state' ] = STATE . RUNNING ; // simulate dispatcher running
191186 eventDispatcher [ 'queue' ] . push ( EVENTS [ 0 ] ) ; // simulate event already in queue
192- const eventManager = new OdpEventManager ( eventDispatcher , logger ) ;
187+ const eventManager = new OdpEventManager ( { eventDispatcher, logger } ) ;
193188
194189 // try adding the second event
195190 eventManager . sendEvent ( EVENTS [ 1 ] ) ;
@@ -200,15 +195,15 @@ describe('OdpEventManager', () => {
200195 it ( 'should add additional information to each event' , ( ) => {
201196 const logger = instance ( mockLogger ) ;
202197 const eventDispatcher = new OdpEventDispatcher ( { odpConfig, apiManager : instance ( mockApiManager ) , logger } ) ;
203- const eventManager = new OdpEventManager ( eventDispatcher , logger , instance ( mockOptimizelyOptions ) ) ;
198+ const eventManager = new OdpEventManager ( { eventDispatcher, logger, clientEngine , clientVersion } ) ;
204199 const processedEventData = PROCESSED_EVENTS [ 0 ] . data ;
205200
206201 const eventData = eventManager [ 'augmentCommonData' ] ( EVENTS [ 0 ] . data ) ;
207202
208203 expect ( ( eventData . get ( 'idempotence_id' ) as string ) . length ) . toEqual ( ( processedEventData . get ( 'idempotence_id' ) as string ) . length ) ;
209204 expect ( eventData . get ( 'data_source_type' ) ) . toEqual ( processedEventData . get ( 'data_source_type' ) ) ;
210205 expect ( eventData . get ( 'data_source' ) ) . toEqual ( processedEventData . get ( 'data_source' ) ) ;
211- expect ( eventData . get ( 'data_source_version' ) ) . not . toBeNull ( ) ;
206+ expect ( eventData . get ( 'data_source_version' ) ) . toEqual ( processedEventData . get ( 'data_source_version' ) ) ;
212207 expect ( eventData . get ( 'key-1' ) ) . toEqual ( processedEventData . get ( 'key-1' ) ) ;
213208 expect ( eventData . get ( 'key-2' ) ) . toEqual ( processedEventData . get ( 'key-2' ) ) ;
214209 expect ( eventData . get ( 'key-3' ) ) . toEqual ( processedEventData . get ( 'key-3' ) ) ;
@@ -225,7 +220,7 @@ describe('OdpEventManager', () => {
225220 batchSize : 10 , // with batch size of 10...
226221 flushInterval : 250 ,
227222 } ) ;
228- const eventManager = new OdpEventManager ( eventDispatcher , logger ) ;
223+ const eventManager = new OdpEventManager ( { eventDispatcher, logger } ) ;
229224
230225 eventManager . start ( ) ;
231226 for ( let i = 0 ; i < 25 ; i += 1 ) {
@@ -247,7 +242,7 @@ describe('OdpEventManager', () => {
247242 batchSize : 10 ,
248243 flushInterval : 100 ,
249244 } ) ;
250- const eventManager = new OdpEventManager ( eventDispatcher , logger , instance ( mockOptimizelyOptions ) ) ;
245+ const eventManager = new OdpEventManager ( { eventDispatcher, logger, clientEngine , clientVersion } ) ;
251246
252247 eventManager . start ( ) ;
253248 EVENTS . forEach ( event => eventManager . sendEvent ( event ) ) ;
@@ -276,7 +271,7 @@ describe('OdpEventManager', () => {
276271 batchSize : 2 , // batch size of 2
277272 flushInterval : 100 ,
278273 } ) ;
279- const eventManager = new OdpEventManager ( eventDispatcher , logger ) ;
274+ const eventManager = new OdpEventManager ( { eventDispatcher, logger } ) ;
280275
281276 eventManager . start ( ) ;
282277 // send 4 events
@@ -299,7 +294,7 @@ describe('OdpEventManager', () => {
299294 batchSize : 2 , // batches of 2 with...
300295 flushInterval : 100 ,
301296 } ) ;
302- const eventManager = new OdpEventManager ( eventDispatcher , logger ) ;
297+ const eventManager = new OdpEventManager ( { eventDispatcher, logger } ) ;
303298
304299 eventManager . start ( ) ;
305300 // ...25 events should...
@@ -327,7 +322,7 @@ describe('OdpEventManager', () => {
327322 batchSize : 10 ,
328323 flushInterval : 100 ,
329324 } ) ;
330- const eventManager = new OdpEventManager ( eventDispatcher , logger , instance ( mockOptimizelyOptions ) ) ;
325+ const eventManager = new OdpEventManager ( { eventDispatcher, logger, clientEngine , clientVersion } ) ;
331326 const vuid = 'vuid_330e05cad15746d9af8a75b8d10' ;
332327
333328 eventManager . start ( ) ;
@@ -361,7 +356,7 @@ describe('OdpEventManager', () => {
361356 logger,
362357 flushInterval : 100 ,
363358 } ) ;
364- const eventManager = new OdpEventManager ( eventDispatcher , logger , instance ( mockOptimizelyOptions ) ) ;
359+ const eventManager = new OdpEventManager ( { eventDispatcher, logger, clientEngine , clientVersion } ) ;
365360 const vuid = 'vuid_330e05cad15746d9af8a75b8d10' ;
366361 const fsUserId = 'test-fs-user-id' ;
367362
@@ -386,12 +381,13 @@ describe('OdpEventManager', () => {
386381 } ) ;
387382
388383 it ( 'should apply updated ODP configuration when available' , ( ) => {
384+ const logger = instance ( mockLogger ) ;
389385 const eventDispatcher = new OdpEventDispatcher ( {
390386 odpConfig,
391387 apiManager : instance ( mockApiManager ) ,
392- logger : instance ( mockLogger ) ,
388+ logger,
393389 } ) ;
394- const eventManager = new OdpEventManager ( eventDispatcher , mockLogger ) ;
390+ const eventManager = new OdpEventManager ( { eventDispatcher, logger } ) ;
395391 const apiKey = 'testing-api-key' ;
396392 const apiHost = 'https://some.other.example.com' ;
397393 const segmentsToCheck = [ 'empty-cart' , '1-item-cart' ] ;
0 commit comments