@webex/contact-center 3.12.0-task-refactor.4 → 3.12.0-task-refactor.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/task/TaskManager.js +1 -0
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/TaskUtils.js +8 -6
- package/dist/services/task/TaskUtils.js.map +1 -1
- package/dist/services/task/state-machine/TaskStateMachine.js +77 -14
- package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -1
- package/dist/services/task/state-machine/actions.js +85 -13
- package/dist/services/task/state-machine/actions.js.map +1 -1
- package/dist/services/task/state-machine/guards.js +35 -0
- package/dist/services/task/state-machine/guards.js.map +1 -1
- package/dist/services/task/state-machine/uiControlsComputer.js +76 -10
- package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -1
- package/dist/services/task/voice/Voice.js +10 -4
- package/dist/services/task/voice/Voice.js.map +1 -1
- package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +68 -8
- package/dist/types/services/task/state-machine/guards.d.ts +5 -0
- package/dist/types/services/task/voice/Voice.d.ts +18 -17
- package/dist/webex.js +1 -1
- package/package.json +1 -1
- package/src/services/task/TaskManager.ts +1 -1
- package/src/services/task/TaskUtils.ts +8 -6
- package/src/services/task/state-machine/TaskStateMachine.ts +101 -16
- package/src/services/task/state-machine/actions.ts +148 -24
- package/src/services/task/state-machine/guards.ts +46 -0
- package/src/services/task/state-machine/uiControlsComputer.ts +158 -15
- package/src/services/task/voice/Voice.ts +12 -5
- package/test/unit/spec/services/WebCallingService.ts +7 -1
- package/test/unit/spec/services/task/TaskManager.ts +26 -0
- package/test/unit/spec/services/task/TaskUtils.ts +16 -0
- package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +573 -0
- package/test/unit/spec/services/task/state-machine/guards.ts +88 -0
- package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +1023 -46
- package/test/unit/spec/services/task/voice/Voice.ts +44 -0
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
|
@@ -72,6 +72,30 @@ describe('Voice Task', () => {
|
|
|
72
72
|
jest.clearAllMocks();
|
|
73
73
|
});
|
|
74
74
|
|
|
75
|
+
describe('emitTaskOutdialFailed', () => {
|
|
76
|
+
it('emits the failure reason string instead of the Task object', () => {
|
|
77
|
+
const taskData = createBaseData({
|
|
78
|
+
interaction: {
|
|
79
|
+
outboundType: 'OUTDIAL',
|
|
80
|
+
} as any,
|
|
81
|
+
});
|
|
82
|
+
const voice = new Voice(dummyContact, taskData, {});
|
|
83
|
+
const emitSpy = jest.spyOn(voice, 'emit');
|
|
84
|
+
|
|
85
|
+
voice.sendStateMachineEvent({
|
|
86
|
+
type: TaskEvent.OUTBOUND_FAILED,
|
|
87
|
+
taskData,
|
|
88
|
+
reason: 'CUSTOMER_BUSY',
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
const outdialFailedCall = emitSpy.mock.calls.find(
|
|
92
|
+
(call) => call[0] === 'task:outdialFailed'
|
|
93
|
+
);
|
|
94
|
+
expect(outdialFailedCall).toBeDefined();
|
|
95
|
+
expect(outdialFailedCall![1]).toBe('CUSTOMER_BUSY');
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
|
|
75
99
|
it('hides end and endConsult when disabled', () => {
|
|
76
100
|
const voice = new Voice(dummyContact, createBaseData(), {
|
|
77
101
|
isEndTaskEnabled: false,
|
|
@@ -122,6 +146,26 @@ describe('Voice Task', () => {
|
|
|
122
146
|
});
|
|
123
147
|
});
|
|
124
148
|
|
|
149
|
+
it('calls contact.unHold when state is conferencing and main media is held', async () => {
|
|
150
|
+
const heldConferenceData = createBaseData({
|
|
151
|
+
interaction: {
|
|
152
|
+
state: 'conference',
|
|
153
|
+
media: {media1: {mediaResourceId: 'media1', isHold: true}},
|
|
154
|
+
} as any,
|
|
155
|
+
}) as any;
|
|
156
|
+
const voice = new Voice(dummyContact, heldConferenceData, {});
|
|
157
|
+
primeConnectedState(voice, heldConferenceData);
|
|
158
|
+
voice.stateMachineService?.send({type: TaskEvent.CONFERENCE_START, taskData: heldConferenceData});
|
|
159
|
+
expect(voice.stateMachineService?.getSnapshot().value).toBe(TaskState.CONFERENCING);
|
|
160
|
+
|
|
161
|
+
await voice.holdResume();
|
|
162
|
+
|
|
163
|
+
expect(dummyContact.unHold).toHaveBeenCalledWith({
|
|
164
|
+
interactionId: 'int1',
|
|
165
|
+
data: {mediaResourceId: 'media1'},
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
|
|
125
169
|
it('uses the main media resource when stale consult media is left in task data', async () => {
|
|
126
170
|
const heldData = createBaseData({
|
|
127
171
|
mediaResourceId: 'main-media',
|