1414 * limitations under the License.
1515 */
1616
17- import { ODP_EVENT_ACTION , ODP_DEFAULT_EVENT_TYPE } from './../lib/utils/enums/index' ;
18-
17+ import { ODP_EVENT_ACTION , ODP_DEFAULT_EVENT_TYPE } from '../lib/utils/enums' ;
1918import { OdpConfig } from '../lib/core/odp/odp_config' ;
2019import { STATE } from '../lib/core/odp/odp_event_manager' ;
21- import { NodeOdpEventManager as OdpEventManager } from '../lib/plugins/odp/event_manager/index.node' ;
20+ import { BrowserOdpEventManager } from "../lib/plugins/odp/event_manager/index.browser" ;
21+ import { NodeOdpEventManager , NodeOdpEventManager as OdpEventManager } from '../lib/plugins/odp/event_manager/index.node' ;
2222import { anything , capture , instance , mock , resetCalls , spy , verify , when } from 'ts-mockito' ;
2323import { NodeOdpEventApiManager as OdpEventApiManager } from '../lib/plugins/odp/event_api_manager/index.node' ;
2424import { LogHandler , LogLevel } from '../lib/modules/logging' ;
@@ -33,14 +33,12 @@ const EVENTS: OdpEvent[] = [
3333 't1' ,
3434 'a1' ,
3535 new Map ( [ [ 'id-key-1' , 'id-value-1' ] ] ) ,
36- new Map (
37- Object . entries ( {
38- 'key-1' : 'value1' ,
39- 'key-2' : null ,
40- 'key-3' : 3.3 ,
41- 'key-4' : true ,
42- } )
43- )
36+ new Map < string , unknown > ( [
37+ [ 'key-1' , 'value1' ] ,
38+ [ 'key-2' , null ] ,
39+ [ 'key-3' , 3.3 ] ,
40+ [ 'key-4' , true ] ,
41+ ] ) ,
4442 ) ,
4543 new OdpEvent (
4644 't2' ,
@@ -90,6 +88,26 @@ const PROCESSED_EVENTS: OdpEvent[] = [
9088 )
9189 ) ,
9290] ;
91+ const EVENT_WITH_EMPTY_IDENTIFIER = new OdpEvent (
92+ 't4' ,
93+ 'a4' ,
94+ new Map ( ) ,
95+ new Map < string , unknown > ( [
96+ [ 'key-53f3' , true ] ,
97+ [ 'key-a04a' , 123 ] ,
98+ [ 'key-2ab4' , 'Linus Torvalds' ] ,
99+ ] ) ,
100+ ) ;
101+ const EVENT_WITH_UNDEFINED_IDENTIFIER = new OdpEvent (
102+ 't4' ,
103+ 'a4' ,
104+ undefined ,
105+ new Map < string , unknown > ( [
106+ [ 'key-53f3' , false ] ,
107+ [ 'key-a04a' , 456 ] ,
108+ [ 'key-2ab4' , 'Bill Gates' ]
109+ ] ) ,
110+ ) ;
93111const makeEvent = ( id : number ) => {
94112 const identifiers = new Map < string , string > ( ) ;
95113 identifiers . set ( 'identifier1' , 'value1-' + id ) ;
@@ -185,12 +203,10 @@ describe('OdpEventManager', () => {
185203 't3' ,
186204 'a3' ,
187205 new Map ( [ [ 'id-key-3' , 'id-value-3' ] ] ) ,
188- new Map (
189- Object . entries ( {
190- 'key-1' : false ,
191- 'key-2' : { random : 'object' , whichShouldFail : true } ,
192- } )
193- )
206+ new Map < string , unknown > ( [
207+ [ 'key-1' , false ] ,
208+ [ 'key-2' , { random : 'object' , whichShouldFail : true } ] ,
209+ ] ) ,
194210 ) ;
195211 eventManager . sendEvent ( badEvent ) ;
196212
@@ -455,4 +471,38 @@ describe('OdpEventManager', () => {
455471 expect ( eventManager [ 'odpConfig' ] . segmentsToCheck ) . toContain ( Array . from ( segmentsToCheck ) [ 0 ] ) ;
456472 expect ( eventManager [ 'odpConfig' ] . segmentsToCheck ) . toContain ( Array . from ( segmentsToCheck ) [ 1 ] ) ;
457473 } ) ;
474+
475+ it ( 'should error when no identifiers are provided in Node' , ( ) => {
476+ const eventManager = new NodeOdpEventManager ( {
477+ odpConfig,
478+ apiManager,
479+ logger,
480+ clientEngine,
481+ clientVersion,
482+ } ) ;
483+
484+ eventManager . start ( ) ;
485+ eventManager . sendEvent ( EVENT_WITH_EMPTY_IDENTIFIER ) ;
486+ eventManager . sendEvent ( EVENT_WITH_UNDEFINED_IDENTIFIER ) ;
487+ eventManager . stop ( ) ;
488+
489+ verify ( mockLogger . log ( LogLevel . ERROR , 'ODP events should have at least one key-value pair in identifiers.' ) ) . twice ( ) ;
490+ } ) ;
491+
492+ it ( 'should never error when no identifiers are provided in Browser' , ( ) => {
493+ const eventManager = new BrowserOdpEventManager ( {
494+ odpConfig,
495+ apiManager,
496+ logger,
497+ clientEngine,
498+ clientVersion,
499+ } ) ;
500+
501+ eventManager . start ( ) ;
502+ eventManager . sendEvent ( EVENT_WITH_EMPTY_IDENTIFIER ) ;
503+ eventManager . sendEvent ( EVENT_WITH_UNDEFINED_IDENTIFIER ) ;
504+ eventManager . stop ( ) ;
505+
506+ verify ( mockLogger . log ( LogLevel . ERROR , 'ODP events should have at least one key-value pair in identifiers.' ) ) . never ( ) ;
507+ } ) ;
458508} ) ;
0 commit comments