@@ -489,14 +489,18 @@ describe('TaskManager', () => {
489489 } ;
490490
491491 webSocketManagerMock . emit ( 'message' , JSON . stringify ( initalPayload ) ) ;
492- const taskUpdateTaskDataSpy = jest . spyOn ( taskManager . getTask ( taskId ) , 'updateTaskData' ) ;
492+ const task = taskManager . getTask ( taskId ) ;
493+ const taskUpdateTaskDataSpy = jest . spyOn ( task , 'updateTaskData' ) ;
494+ const taskEmitSpy = jest . spyOn ( task , 'emit' ) ;
495+
493496 webSocketManagerMock . emit ( 'message' , JSON . stringify ( payload ) ) ;
497+
494498 expect ( taskUpdateTaskDataSpy ) . toHaveBeenCalledWith ( {
495499 ...payload . data ,
496500 isConsulted : false ,
497501 } ) ;
498- const task = taskManager . getTask ( taskId ) ;
499502 expect ( task . data . isConsulted ) . toBe ( false ) ;
503+ expect ( taskEmitSpy ) . toHaveBeenCalledWith ( TASK_EVENTS . TASK_CONSULT_CREATED , task ) ;
500504 } ) ;
501505
502506 it ( 'handle AGENT_OFFER_CONTACT event' , ( ) => {
@@ -550,17 +554,21 @@ describe('TaskManager', () => {
550554 } ;
551555
552556 webSocketManagerMock . emit ( 'message' , JSON . stringify ( initalPayload ) ) ;
553- taskManager . getTask ( taskId ) . updateTaskData = jest . fn ( ) . mockImplementation ( ( newData ) => {
554- taskManager . getTask ( taskId ) . data = { ...newData , isConsulted : true } ;
555- return taskManager . getTask ( taskId ) ;
557+ const task = taskManager . getTask ( taskId ) ;
558+ task . updateTaskData = jest . fn ( ) . mockImplementation ( ( newData ) => {
559+ task . data = { ...newData , isConsulted : true } ;
560+ return task ;
556561 } ) ;
562+ const taskEmitSpy = jest . spyOn ( task , 'emit' ) ;
557563
558564 webSocketManagerMock . emit ( 'message' , JSON . stringify ( payload ) ) ;
559- expect ( taskManager . getTask ( taskId ) . updateTaskData ) . toHaveBeenCalledWith ( {
565+
566+ expect ( task . updateTaskData ) . toHaveBeenCalledWith ( {
560567 ...payload . data ,
561568 isConsulted : true ,
562569 } ) ;
563- expect ( taskManager . getTask ( taskId ) . data . isConsulted ) . toBe ( true ) ;
570+ expect ( task . data . isConsulted ) . toBe ( true ) ;
571+ expect ( taskEmitSpy ) . toHaveBeenCalledWith ( TASK_EVENTS . TASK_OFFER_CONSULT , task ) ;
564572 } ) ;
565573
566574 it ( 'should emit TASK_CONSULT_ACCEPTED event on AGENT_CONSULTING event' , ( ) => {
@@ -747,10 +755,13 @@ describe('TaskManager', () => {
747755 } ,
748756 } ;
749757
750- taskManager . taskCollection [ taskId ] = taskManager . getTask ( taskId ) ;
758+ webSocketManagerMock . emit ( 'message' , JSON . stringify ( initalPayload ) ) ;
759+ const task = taskManager . getTask ( taskId ) ;
760+ const taskEmitSpy = jest . spyOn ( task , 'emit' ) ;
751761
752762 webSocketManagerMock . emit ( 'message' , JSON . stringify ( payload ) ) ;
753763
764+ expect ( taskEmitSpy ) . toHaveBeenCalledWith ( TASK_EVENTS . TASK_WRAPPEDUP , task ) ;
754765 expect ( taskManager . getTask ( taskId ) ) . toBeUndefined ( ) ;
755766 } ) ;
756767
@@ -1176,5 +1187,20 @@ describe('TaskManager', () => {
11761187 expect ( unregisterSpy ) . not . toHaveBeenCalled ( ) ;
11771188 expect ( cleanUpCallSpy ) . not . toHaveBeenCalled ( ) ;
11781189 } ) ;
1190+
1191+ // Tests for recording pause/resume events
1192+ [ 'PAUSED' , 'PAUSE_FAILED' , 'RESUMED' , 'RESUME_FAILED' ] . forEach ( ( suffix ) => {
1193+ const ccEvent = CC_EVENTS [ `CONTACT_RECORDING_${ suffix } ` ] ;
1194+ const taskEvent = TASK_EVENTS [ `TASK_RECORDING_${ suffix } ` ] ;
1195+ it ( `should emit ${ taskEvent } on ${ ccEvent } event` , ( ) => {
1196+ const payload = { data : { ...initalPayload . data , type : ccEvent } } ;
1197+ webSocketManagerMock . emit ( 'message' , JSON . stringify ( initalPayload ) ) ; // setup
1198+ const task = taskManager . getTask ( taskId ) ;
1199+ const spy = jest . spyOn ( task , 'emit' ) ;
1200+
1201+ webSocketManagerMock . emit ( 'message' , JSON . stringify ( payload ) ) ;
1202+ expect ( spy ) . toHaveBeenCalledWith ( taskEvent , suffix . includes ( 'FAILED' ) ? payload . data : task ) ;
1203+ } ) ;
1204+ } ) ;
11791205} ) ;
11801206
0 commit comments