@@ -368,124 +368,6 @@ describe('BatchEventProcessor', async () => {
368368 expect ( events ) . toEqual ( eventsInStore ) ;
369369 } ) ;
370370
371- it ( 'should not store the event in the eventStore but still dispatch if the \
372- number of pending events is greater than the limit' , async ( ) => {
373- const eventDispatcher = getMockDispatcher ( ) ;
374- const mockDispatch : MockInstance < typeof eventDispatcher . dispatchEvent > = eventDispatcher . dispatchEvent ;
375- mockDispatch . mockResolvedValue ( resolvablePromise ( ) . promise ) ;
376-
377- const eventStore = getMockSyncCache < EventWithId > ( ) ;
378-
379- const idGenerator = new IdGenerator ( ) ;
380-
381- for ( let i = 0 ; i < 505 ; i ++ ) {
382- const event = createImpressionEvent ( `id-${ i } ` ) ;
383- const cacheId = idGenerator . getId ( ) ;
384- await eventStore . set ( cacheId , { id : cacheId , event } ) ;
385- }
386-
387- expect ( eventStore . size ( ) ) . toEqual ( 505 ) ;
388-
389- const processor = new BatchEventProcessor ( {
390- eventDispatcher,
391- dispatchRepeater : getMockRepeater ( ) ,
392- batchSize : 1 ,
393- eventStore,
394- } ) ;
395-
396- processor . start ( ) ;
397- await processor . onRunning ( ) ;
398-
399- const events : ProcessableEvent [ ] = [ ] ;
400- for ( let i = 0 ; i < 2 ; i ++ ) {
401- const event = createImpressionEvent ( `id-${ i } ` ) ;
402- events . push ( event ) ;
403- await processor . process ( event )
404- }
405-
406- expect ( eventStore . size ( ) ) . toEqual ( 505 ) ;
407- expect ( eventDispatcher . dispatchEvent ) . toHaveBeenCalledTimes ( 507 ) ;
408- expect ( eventDispatcher . dispatchEvent . mock . calls [ 505 ] [ 0 ] ) . toEqual ( buildLogEvent ( [ events [ 0 ] ] ) ) ;
409- expect ( eventDispatcher . dispatchEvent . mock . calls [ 506 ] [ 0 ] ) . toEqual ( buildLogEvent ( [ events [ 1 ] ] ) ) ;
410- } ) ;
411-
412- it ( 'should store events in the eventStore when the number of events in the store\
413- becomes lower than the limit' , async ( ) => {
414- const eventDispatcher = getMockDispatcher ( ) ;
415-
416- const dispatchResponses : ResolvablePromise < any > [ ] = [ ] ;
417-
418- const mockDispatch : MockInstance < typeof eventDispatcher . dispatchEvent > = eventDispatcher . dispatchEvent ;
419- mockDispatch . mockImplementation ( ( arg ) => {
420- const dispatchResponse = resolvablePromise ( ) ;
421- dispatchResponses . push ( dispatchResponse ) ;
422- return dispatchResponse . promise ;
423- } ) ;
424-
425- const eventStore = getMockSyncCache < EventWithId > ( ) ;
426-
427- const idGenerator = new IdGenerator ( ) ;
428-
429- for ( let i = 0 ; i < 502 ; i ++ ) {
430- const event = createImpressionEvent ( `id-${ i } ` ) ;
431- const cacheId = String ( i ) ;
432- await eventStore . set ( cacheId , { id : cacheId , event } ) ;
433- }
434-
435- expect ( eventStore . size ( ) ) . toEqual ( 502 ) ;
436-
437- const processor = new BatchEventProcessor ( {
438- eventDispatcher,
439- dispatchRepeater : getMockRepeater ( ) ,
440- batchSize : 1 ,
441- eventStore,
442- } ) ;
443-
444- processor . start ( ) ;
445- await processor . onRunning ( ) ;
446-
447- let events : ProcessableEvent [ ] = [ ] ;
448- for ( let i = 0 ; i < 2 ; i ++ ) {
449- const event = createImpressionEvent ( `id-${ i + 502 } ` ) ;
450- events . push ( event ) ;
451- await processor . process ( event )
452- }
453-
454- expect ( eventStore . size ( ) ) . toEqual ( 502 ) ;
455- expect ( eventDispatcher . dispatchEvent ) . toHaveBeenCalledTimes ( 504 ) ;
456-
457- expect ( eventDispatcher . dispatchEvent . mock . calls [ 502 ] [ 0 ] ) . toEqual ( buildLogEvent ( [ events [ 0 ] ] ) ) ;
458- expect ( eventDispatcher . dispatchEvent . mock . calls [ 503 ] [ 0 ] ) . toEqual ( buildLogEvent ( [ events [ 1 ] ] ) ) ;
459-
460- // resolve the dispatch for events not saved in the store
461- dispatchResponses [ 502 ] . resolve ( { statusCode : 200 } ) ;
462- dispatchResponses [ 503 ] . resolve ( { statusCode : 200 } ) ;
463-
464- await exhaustMicrotasks ( ) ;
465- expect ( eventStore . size ( ) ) . toEqual ( 502 ) ;
466-
467- // resolve the dispatch for 3 events in store, making the store size 499 which is lower than the limit
468- dispatchResponses [ 0 ] . resolve ( { statusCode : 200 } ) ;
469- dispatchResponses [ 1 ] . resolve ( { statusCode : 200 } ) ;
470- dispatchResponses [ 2 ] . resolve ( { statusCode : 200 } ) ;
471-
472- await exhaustMicrotasks ( ) ;
473- expect ( eventStore . size ( ) ) . toEqual ( 499 ) ;
474-
475- // process 2 more events
476- events = [ ] ;
477- for ( let i = 0 ; i < 2 ; i ++ ) {
478- const event = createImpressionEvent ( `id-${ i + 504 } ` ) ;
479- events . push ( event ) ;
480- await processor . process ( event )
481- }
482-
483- expect ( eventStore . size ( ) ) . toEqual ( 500 ) ;
484- expect ( eventDispatcher . dispatchEvent ) . toHaveBeenCalledTimes ( 506 ) ;
485- expect ( eventDispatcher . dispatchEvent . mock . calls [ 504 ] [ 0 ] ) . toEqual ( buildLogEvent ( [ events [ 0 ] ] ) ) ;
486- expect ( eventDispatcher . dispatchEvent . mock . calls [ 505 ] [ 0 ] ) . toEqual ( buildLogEvent ( [ events [ 1 ] ] ) ) ;
487- } ) ;
488-
489371 it ( 'should still dispatch events even if the store save fails' , async ( ) => {
490372 const eventDispatcher = getMockDispatcher ( ) ;
491373 const mockDispatch : MockInstance < typeof eventDispatcher . dispatchEvent > = eventDispatcher . dispatchEvent ;
0 commit comments