diff --git a/packages/contact-center/cc-components/src/components/task/CallControl/call-control.utils.ts b/packages/contact-center/cc-components/src/components/task/CallControl/call-control.utils.ts index 778725954..6f82f3352 100644 --- a/packages/contact-center/cc-components/src/components/task/CallControl/call-control.utils.ts +++ b/packages/contact-center/cc-components/src/components/task/CallControl/call-control.utils.ts @@ -358,7 +358,7 @@ export const updateCallStateFromTask = ( if (callProcessingDetails) { const {isPaused} = callProcessingDetails; - setIsRecording(!isPaused); + setIsRecording(isPaused !== 'true'); } } catch (error) { logger?.error('CC-Widgets: CallControl: Error in updateCallStateFromTask', { diff --git a/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.utils.tsx b/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.utils.tsx index 0e8976e59..b21f715f2 100644 --- a/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.utils.tsx +++ b/packages/contact-center/cc-components/tests/components/task/CallControl/call-control.utils.tsx @@ -722,7 +722,7 @@ describe('CallControl Utils', () => { it('should update recording state from task data', () => { updateCallStateFromTask(mockCurrentTask as unknown as ITask, mockSetIsRecording); - expect(mockSetIsRecording).toHaveBeenCalledWith(true); // !isPaused = !false = true + expect(mockSetIsRecording).toHaveBeenCalledWith(true); }); it('should handle task with recording paused', () => { @@ -733,7 +733,7 @@ describe('CallControl Utils', () => { interaction: { ...mockCurrentTask.data.interaction, callProcessingDetails: { - isPaused: true, + isPaused: 'true', }, }, }, @@ -741,7 +741,45 @@ describe('CallControl Utils', () => { updateCallStateFromTask(taskWithPausedRecording as unknown as ITask, mockSetIsRecording); - expect(mockSetIsRecording).toHaveBeenCalledWith(false); // !isPaused = !true = false + expect(mockSetIsRecording).toHaveBeenCalledWith(false); + }); + + it('should handle isPaused as string "true" from backend', () => { + const taskWithStringPaused = { + ...mockCurrentTask, + data: { + ...mockCurrentTask.data, + interaction: { + ...mockCurrentTask.data.interaction, + callProcessingDetails: { + isPaused: 'true', + }, + }, + }, + }; + + updateCallStateFromTask(taskWithStringPaused as unknown as ITask, mockSetIsRecording); + + expect(mockSetIsRecording).toHaveBeenCalledWith(false); + }); + + it('should handle isPaused as string "false" from backend', () => { + const taskWithStringNotPaused = { + ...mockCurrentTask, + data: { + ...mockCurrentTask.data, + interaction: { + ...mockCurrentTask.data.interaction, + callProcessingDetails: { + isPaused: 'false', + }, + }, + }, + }; + + updateCallStateFromTask(taskWithStringNotPaused as unknown as ITask, mockSetIsRecording); + + expect(mockSetIsRecording).toHaveBeenCalledWith(true); }); it('should return early when currentTask is null', () => {