@webex/calling 3.10.0 → 3.11.0-webex-services-ready.1
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/CallHistory/CallHistory.js +128 -133
- package/dist/CallHistory/CallHistory.js.map +1 -1
- package/dist/CallHistory/CallHistory.test.js +289 -186
- package/dist/CallHistory/CallHistory.test.js.map +1 -1
- package/dist/CallSettings/CallSettings.js +17 -18
- package/dist/CallSettings/CallSettings.js.map +1 -1
- package/dist/CallSettings/CallSettings.test.js +14 -14
- package/dist/CallSettings/CallSettings.test.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.js +72 -25
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +138 -48
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.js +138 -145
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +149 -150
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -1
- package/dist/CallingClient/CallingClient.js +298 -347
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/CallingClient.test.js +267 -405
- package/dist/CallingClient/CallingClient.test.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.js +7 -8
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -1
- package/dist/CallingClient/calling/CallerId/index.test.js +24 -24
- package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -1
- package/dist/CallingClient/calling/call.js +657 -616
- package/dist/CallingClient/calling/call.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +864 -551
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/calling/callManager.js +22 -18
- package/dist/CallingClient/calling/callManager.js.map +1 -1
- package/dist/CallingClient/calling/callManager.test.js +114 -114
- package/dist/CallingClient/calling/callManager.test.js.map +1 -1
- package/dist/CallingClient/constants.js +5 -1
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/index.js +57 -74
- package/dist/CallingClient/line/index.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +22 -22
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/registration/register.js +659 -527
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +657 -309
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.js +24 -24
- package/dist/CallingClient/registration/webWorker.js.map +1 -1
- package/dist/CallingClient/registration/webWorker.test.js +20 -20
- package/dist/CallingClient/registration/webWorker.test.js.map +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js +1 -1
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -1
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +28 -28
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -1
- package/dist/Contacts/ContactsClient.js +259 -268
- package/dist/Contacts/ContactsClient.js.map +1 -1
- package/dist/Contacts/ContactsClient.test.js +64 -63
- package/dist/Contacts/ContactsClient.test.js.map +1 -1
- package/dist/Errors/catalog/CallError.js +7 -10
- package/dist/Errors/catalog/CallError.js.map +1 -1
- package/dist/Errors/catalog/CallingDeviceError.js +6 -9
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -1
- package/dist/Errors/catalog/ExtendedError.js +6 -8
- package/dist/Errors/catalog/ExtendedError.js.map +1 -1
- package/dist/Errors/catalog/LineError.js +6 -9
- package/dist/Errors/catalog/LineError.js.map +1 -1
- package/dist/Events/impl/index.js +12 -14
- package/dist/Events/impl/index.js.map +1 -1
- package/dist/Logger/index.js +3 -3
- package/dist/Logger/index.js.map +1 -1
- package/dist/Logger/index.test.js +1 -1
- package/dist/Logger/index.test.js.map +1 -1
- package/dist/Metrics/index.js +1 -2
- package/dist/Metrics/index.js.map +1 -1
- package/dist/SDKConnector/index.js +1 -2
- package/dist/SDKConnector/index.js.map +1 -1
- package/dist/SDKConnector/types.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +131 -139
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +106 -98
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.js +88 -92
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +72 -72
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -1
- package/dist/Voicemail/Voicemail.js +103 -131
- package/dist/Voicemail/Voicemail.js.map +1 -1
- package/dist/Voicemail/Voicemail.test.js +20 -20
- package/dist/Voicemail/Voicemail.test.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.js +117 -131
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +180 -154
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -1
- package/dist/common/Utils.js +198 -166
- package/dist/common/Utils.js.map +1 -1
- package/dist/common/Utils.test.js +436 -191
- package/dist/common/Utils.test.js.map +1 -1
- package/dist/common/constants.js +3 -1
- package/dist/common/constants.js.map +1 -1
- package/dist/common/testUtil.js +5 -4
- package/dist/common/testUtil.js.map +1 -1
- package/dist/module/CallHistory/CallHistory.js +20 -11
- package/dist/module/CallSettings/UcmBackendConnector.js +21 -8
- package/dist/module/CallSettings/WxCallBackendConnector.js +10 -15
- package/dist/module/CallingClient/CallingClient.js +83 -123
- package/dist/module/CallingClient/calling/call.js +73 -58
- package/dist/module/CallingClient/calling/callManager.js +7 -0
- package/dist/module/CallingClient/constants.js +3 -0
- package/dist/module/CallingClient/registration/register.js +85 -5
- package/dist/module/CallingClient/registration/webWorker.js +2 -2
- package/dist/module/CallingClient/registration/webWorkerStr.js +2 -2
- package/dist/module/Contacts/ContactsClient.js +19 -25
- package/dist/module/Events/impl/index.js +1 -1
- package/dist/module/Logger/index.js +2 -2
- package/dist/module/Voicemail/BroadworksBackendConnector.js +10 -18
- package/dist/module/Voicemail/UcmBackendConnector.js +7 -11
- package/dist/module/Voicemail/Voicemail.js +42 -68
- package/dist/module/Voicemail/WxCallBackendConnector.js +14 -28
- package/dist/module/common/Utils.js +31 -5
- package/dist/module/common/constants.js +2 -0
- package/dist/module/common/testUtil.js +1 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallSettings/UcmBackendConnector.d.ts +1 -0
- package/dist/types/CallSettings/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts +4 -0
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +3 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +4 -0
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +6 -0
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts +1 -1
- package/dist/types/CallingClient/registration/webWorkerStr.d.ts.map +1 -1
- package/dist/types/Contacts/ContactsClient.d.ts +1 -0
- package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
- package/dist/types/Logger/index.d.ts +1 -2
- package/dist/types/Logger/index.d.ts.map +1 -1
- package/dist/types/SDKConnector/types.d.ts +16 -0
- package/dist/types/SDKConnector/types.d.ts.map +1 -1
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/UcmBackendConnector.d.ts.map +1 -1
- package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +1 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/dist/types/common/constants.d.ts +2 -0
- package/dist/types/common/constants.d.ts.map +1 -1
- package/dist/types/common/testUtil.d.ts +1 -0
- package/dist/types/common/testUtil.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -5,6 +5,7 @@ var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
|
|
5
5
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
6
6
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
7
7
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
8
|
+
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
8
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
9
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
10
11
|
var _types = require("../Logger/types");
|
|
@@ -67,21 +68,23 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
67
68
|
});
|
|
68
69
|
it('Success: Get Call Forward Always setting when set to destination', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
69
70
|
var response, callForwardSetting;
|
|
70
|
-
return _regenerator.default.wrap(function
|
|
71
|
+
return _regenerator.default.wrap(function (_context) {
|
|
71
72
|
while (1) switch (_context.prev = _context.next) {
|
|
72
73
|
case 0:
|
|
73
|
-
_context.next =
|
|
74
|
+
_context.next = 1;
|
|
74
75
|
return callSettingsClient.getCallForwardAlwaysSetting('8001');
|
|
75
|
-
case
|
|
76
|
+
case 1:
|
|
76
77
|
response = _context.sent;
|
|
77
78
|
callForwardSetting = response.data.callSetting;
|
|
78
79
|
expect(response.statusCode).toEqual(200);
|
|
79
80
|
expect(response.message).toEqual(_constants.SUCCESS_MESSAGE);
|
|
80
81
|
expect(callForwardSetting.enabled).toEqual(true);
|
|
81
82
|
expect(callForwardSetting.destination).toEqual('8004');
|
|
82
|
-
expect(webex.request).
|
|
83
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
84
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
83
85
|
method: _types2.HTTP_METHODS.GET,
|
|
84
|
-
uri: callForwardingUri
|
|
86
|
+
uri: callForwardingUri,
|
|
87
|
+
headers: {}
|
|
85
88
|
});
|
|
86
89
|
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8001', {
|
|
87
90
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
@@ -92,7 +95,7 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
92
95
|
method: 'getCallForwardAlwaysSetting'
|
|
93
96
|
});
|
|
94
97
|
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
95
|
-
case
|
|
98
|
+
case 2:
|
|
96
99
|
case "end":
|
|
97
100
|
return _context.stop();
|
|
98
101
|
}
|
|
@@ -100,21 +103,23 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
100
103
|
})));
|
|
101
104
|
it('Success: Get Call Forward Always setting when set to voicemail', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
102
105
|
var response, callForwardSetting;
|
|
103
|
-
return _regenerator.default.wrap(function
|
|
106
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
104
107
|
while (1) switch (_context2.prev = _context2.next) {
|
|
105
108
|
case 0:
|
|
106
|
-
_context2.next =
|
|
109
|
+
_context2.next = 1;
|
|
107
110
|
return callSettingsClient.getCallForwardAlwaysSetting('8002');
|
|
108
|
-
case
|
|
111
|
+
case 1:
|
|
109
112
|
response = _context2.sent;
|
|
110
113
|
callForwardSetting = response.data.callSetting;
|
|
111
114
|
expect(response.statusCode).toEqual(200);
|
|
112
115
|
expect(response.message).toEqual(_constants.SUCCESS_MESSAGE);
|
|
113
116
|
expect(callForwardSetting.enabled).toEqual(true);
|
|
114
117
|
expect(callForwardSetting.destination).toEqual('VOICEMAIL');
|
|
115
|
-
expect(webex.request).
|
|
118
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
119
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
116
120
|
method: _types2.HTTP_METHODS.GET,
|
|
117
|
-
uri: callForwardingUri
|
|
121
|
+
uri: callForwardingUri,
|
|
122
|
+
headers: {}
|
|
118
123
|
});
|
|
119
124
|
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8002', {
|
|
120
125
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
@@ -125,7 +130,7 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
125
130
|
method: 'getCallForwardAlwaysSetting'
|
|
126
131
|
});
|
|
127
132
|
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
128
|
-
case
|
|
133
|
+
case 2:
|
|
129
134
|
case "end":
|
|
130
135
|
return _context2.stop();
|
|
131
136
|
}
|
|
@@ -133,21 +138,23 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
133
138
|
})));
|
|
134
139
|
it('Success: Get Call Forward Always setting when not set', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
135
140
|
var response, callForwardSetting;
|
|
136
|
-
return _regenerator.default.wrap(function
|
|
141
|
+
return _regenerator.default.wrap(function (_context3) {
|
|
137
142
|
while (1) switch (_context3.prev = _context3.next) {
|
|
138
143
|
case 0:
|
|
139
|
-
_context3.next =
|
|
144
|
+
_context3.next = 1;
|
|
140
145
|
return callSettingsClient.getCallForwardAlwaysSetting('8003');
|
|
141
|
-
case
|
|
146
|
+
case 1:
|
|
142
147
|
response = _context3.sent;
|
|
143
148
|
callForwardSetting = response.data.callSetting;
|
|
144
149
|
expect(response.statusCode).toEqual(200);
|
|
145
150
|
expect(response.message).toEqual(_constants.SUCCESS_MESSAGE);
|
|
146
151
|
expect(callForwardSetting.enabled).toEqual(false);
|
|
147
152
|
expect(callForwardSetting.destination).toBeFalsy();
|
|
148
|
-
expect(webex.request).
|
|
153
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
154
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
149
155
|
method: _types2.HTTP_METHODS.GET,
|
|
150
|
-
uri: callForwardingUri
|
|
156
|
+
uri: callForwardingUri,
|
|
157
|
+
headers: {}
|
|
151
158
|
});
|
|
152
159
|
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8003', {
|
|
153
160
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
@@ -158,7 +165,7 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
158
165
|
method: 'getCallForwardAlwaysSetting'
|
|
159
166
|
});
|
|
160
167
|
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
161
|
-
case
|
|
168
|
+
case 2:
|
|
162
169
|
case "end":
|
|
163
170
|
return _context3.stop();
|
|
164
171
|
}
|
|
@@ -166,21 +173,23 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
166
173
|
})));
|
|
167
174
|
it('Success: Get Call Forward Always setting when directory num matching with e16number and set to destination', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
168
175
|
var response, callForwardSetting;
|
|
169
|
-
return _regenerator.default.wrap(function
|
|
176
|
+
return _regenerator.default.wrap(function (_context4) {
|
|
170
177
|
while (1) switch (_context4.prev = _context4.next) {
|
|
171
178
|
case 0:
|
|
172
|
-
_context4.next =
|
|
179
|
+
_context4.next = 1;
|
|
173
180
|
return callSettingsClient.getCallForwardAlwaysSetting('8006');
|
|
174
|
-
case
|
|
181
|
+
case 1:
|
|
175
182
|
response = _context4.sent;
|
|
176
183
|
callForwardSetting = response.data.callSetting;
|
|
177
184
|
expect(response.statusCode).toEqual(200);
|
|
178
185
|
expect(response.message).toEqual(_constants.SUCCESS_MESSAGE);
|
|
179
186
|
expect(callForwardSetting.enabled).toEqual(true);
|
|
180
187
|
expect(callForwardSetting.destination).toEqual('8007');
|
|
181
|
-
expect(webex.request).
|
|
188
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
189
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
182
190
|
method: _types2.HTTP_METHODS.GET,
|
|
183
|
-
uri: callForwardingUri
|
|
191
|
+
uri: callForwardingUri,
|
|
192
|
+
headers: {}
|
|
184
193
|
});
|
|
185
194
|
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8006', {
|
|
186
195
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
@@ -191,7 +200,7 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
191
200
|
method: 'getCallForwardAlwaysSetting'
|
|
192
201
|
});
|
|
193
202
|
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
194
|
-
case
|
|
203
|
+
case 2:
|
|
195
204
|
case "end":
|
|
196
205
|
return _context4.stop();
|
|
197
206
|
}
|
|
@@ -199,7 +208,7 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
199
208
|
})));
|
|
200
209
|
it('Failure: Get Call Forward Always setting fails', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
201
210
|
var responsePayload, serviceErrorCodeHandlerSpy, response;
|
|
202
|
-
return _regenerator.default.wrap(function
|
|
211
|
+
return _regenerator.default.wrap(function (_context5) {
|
|
203
212
|
while (1) switch (_context5.prev = _context5.next) {
|
|
204
213
|
case 0:
|
|
205
214
|
responsePayload = {
|
|
@@ -208,18 +217,21 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
208
217
|
webex.request.mockClear();
|
|
209
218
|
webex.request.mockRejectedValue(responsePayload);
|
|
210
219
|
serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');
|
|
211
|
-
_context5.next =
|
|
220
|
+
_context5.next = 1;
|
|
212
221
|
return callSettingsClient.getCallForwardAlwaysSetting('8002');
|
|
213
|
-
case
|
|
222
|
+
case 1:
|
|
214
223
|
response = _context5.sent;
|
|
215
224
|
expect(response.statusCode).toEqual(503);
|
|
216
225
|
expect(response.message).toEqual(_constants.FAILURE_MESSAGE);
|
|
217
226
|
expect(response.data.error).toEqual('Unable to establish a connection with the server');
|
|
218
|
-
expect(webex.request).
|
|
227
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
228
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
219
229
|
method: _types2.HTTP_METHODS.GET,
|
|
220
|
-
uri: callForwardingUri
|
|
230
|
+
uri: callForwardingUri,
|
|
231
|
+
headers: {}
|
|
221
232
|
});
|
|
222
|
-
expect(serviceErrorCodeHandlerSpy).
|
|
233
|
+
expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledTimes(1);
|
|
234
|
+
expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledWith(responsePayload, {
|
|
223
235
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
224
236
|
method: callSettingsClient.getCallForwardAlwaysSetting.name
|
|
225
237
|
});
|
|
@@ -227,12 +239,12 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
227
239
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
228
240
|
method: 'getCallForwardAlwaysSetting'
|
|
229
241
|
});
|
|
230
|
-
expect(_Logger.default.error).toHaveBeenCalledWith(
|
|
242
|
+
expect(_Logger.default.error).toHaveBeenCalledWith("Failed to get call forward always setting: ".concat((0, _stringify.default)(responsePayload)), {
|
|
231
243
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
232
244
|
method: 'getCallForwardAlwaysSetting'
|
|
233
245
|
});
|
|
234
246
|
expect(_Logger.default.log).not.toHaveBeenCalled();
|
|
235
|
-
case
|
|
247
|
+
case 2:
|
|
236
248
|
case "end":
|
|
237
249
|
return _context5.stop();
|
|
238
250
|
}
|
|
@@ -240,26 +252,28 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
240
252
|
})));
|
|
241
253
|
it('Failure: Get Call Forward Always setting fails - wrong directoryNumber', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
242
254
|
var response;
|
|
243
|
-
return _regenerator.default.wrap(function
|
|
255
|
+
return _regenerator.default.wrap(function (_context6) {
|
|
244
256
|
while (1) switch (_context6.prev = _context6.next) {
|
|
245
257
|
case 0:
|
|
246
|
-
_context6.next =
|
|
258
|
+
_context6.next = 1;
|
|
247
259
|
return callSettingsClient.getCallForwardAlwaysSetting('8005');
|
|
248
|
-
case
|
|
260
|
+
case 1:
|
|
249
261
|
response = _context6.sent;
|
|
250
262
|
expect(response.statusCode).toEqual(404);
|
|
251
263
|
expect(response.message).toEqual(_constants.FAILURE_MESSAGE);
|
|
252
264
|
expect(response.data.error).toEqual('Directory Number is not assigned to the user');
|
|
253
|
-
expect(webex.request).
|
|
265
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
266
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
254
267
|
method: _types2.HTTP_METHODS.GET,
|
|
255
|
-
uri: callForwardingUri
|
|
268
|
+
uri: callForwardingUri,
|
|
269
|
+
headers: {}
|
|
256
270
|
});
|
|
257
271
|
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8005', {
|
|
258
272
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
259
273
|
method: 'getCallForwardAlwaysSetting'
|
|
260
274
|
});
|
|
261
275
|
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
262
|
-
case
|
|
276
|
+
case 2:
|
|
263
277
|
case "end":
|
|
264
278
|
return _context6.stop();
|
|
265
279
|
}
|
|
@@ -267,23 +281,23 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
267
281
|
})));
|
|
268
282
|
it('Failure: Get Call Forward Always setting fails when no directoryNumberProvided', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
269
283
|
var response;
|
|
270
|
-
return _regenerator.default.wrap(function
|
|
284
|
+
return _regenerator.default.wrap(function (_context7) {
|
|
271
285
|
while (1) switch (_context7.prev = _context7.next) {
|
|
272
286
|
case 0:
|
|
273
|
-
_context7.next =
|
|
287
|
+
_context7.next = 1;
|
|
274
288
|
return callSettingsClient.getCallForwardAlwaysSetting();
|
|
275
|
-
case
|
|
289
|
+
case 1:
|
|
276
290
|
response = _context7.sent;
|
|
277
291
|
expect(response.statusCode).toEqual(400);
|
|
278
292
|
expect(response.message).toEqual(_constants.FAILURE_MESSAGE);
|
|
279
293
|
expect(response.data.error).toEqual('Directory Number is mandatory for UCM backend');
|
|
280
|
-
expect(webex.request).not.
|
|
294
|
+
expect(webex.request).not.toHaveBeenCalled();
|
|
281
295
|
expect(_Logger.default.info).toHaveBeenCalledWith('invoking', {
|
|
282
296
|
file: _constants.UCM_CONNECTOR_FILE,
|
|
283
297
|
method: 'getCallForwardAlwaysSetting'
|
|
284
298
|
});
|
|
285
299
|
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
286
|
-
case
|
|
300
|
+
case 2:
|
|
287
301
|
case "end":
|
|
288
302
|
return _context7.stop();
|
|
289
303
|
}
|
|
@@ -294,18 +308,18 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
294
308
|
it.each(unsupportedMethods)('%s', /*#__PURE__*/function () {
|
|
295
309
|
var _ref8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8(methodName) {
|
|
296
310
|
var response;
|
|
297
|
-
return _regenerator.default.wrap(function
|
|
311
|
+
return _regenerator.default.wrap(function (_context8) {
|
|
298
312
|
while (1) switch (_context8.prev = _context8.next) {
|
|
299
313
|
case 0:
|
|
300
|
-
_context8.next =
|
|
314
|
+
_context8.next = 1;
|
|
301
315
|
return callSettingsClient[methodName]();
|
|
302
|
-
case
|
|
316
|
+
case 1:
|
|
303
317
|
response = _context8.sent;
|
|
304
318
|
expect(response.statusCode).toEqual(501);
|
|
305
319
|
expect(response.message).toEqual(_constants.FAILURE_MESSAGE);
|
|
306
320
|
expect(response.data.error).toEqual('Method is not implemented at the backend');
|
|
307
|
-
expect(webex.request).not.
|
|
308
|
-
case
|
|
321
|
+
expect(webex.request).not.toHaveBeenCalled();
|
|
322
|
+
case 2:
|
|
309
323
|
case "end":
|
|
310
324
|
return _context8.stop();
|
|
311
325
|
}
|
|
@@ -317,5 +331,81 @@ describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
|
317
331
|
}());
|
|
318
332
|
});
|
|
319
333
|
});
|
|
334
|
+
describe('FedRAMP Call Forward Always test', function () {
|
|
335
|
+
var callSettingsClient;
|
|
336
|
+
var MOCK_AUTH_TOKEN = 'mockAuthToken';
|
|
337
|
+
var callForwardPayload = {
|
|
338
|
+
callForwarding: {
|
|
339
|
+
always: [{
|
|
340
|
+
dn: '8001',
|
|
341
|
+
destination: '8004',
|
|
342
|
+
destinationVoicemailEnabled: false,
|
|
343
|
+
e164Number: '+14922999903'
|
|
344
|
+
}]
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
var callForwardingUriFedRamp = "".concat(_constants.WEBEX_API_CONFIG_FEDRAMP_URL, "/").concat(_constants2.PEOPLE_ENDPOINT, "/").concat(userId, "/").concat(_constants2.CF_ENDPOINT.toLowerCase(), "?").concat(_constants2.ORG_ENDPOINT, "=").concat(orgId);
|
|
348
|
+
beforeAll(function () {
|
|
349
|
+
webex.config.fedramp = true;
|
|
350
|
+
webex.credentials.getUserToken.mockResolvedValue(MOCK_AUTH_TOKEN);
|
|
351
|
+
callSettingsClient = new _UcmBackendConnector.UcmBackendConnector(webex, {
|
|
352
|
+
level: _types.LOGGER.INFO
|
|
353
|
+
}, true);
|
|
354
|
+
});
|
|
355
|
+
afterAll(function () {
|
|
356
|
+
webex.config.fedramp = false;
|
|
357
|
+
});
|
|
358
|
+
beforeEach(function () {
|
|
359
|
+
var responsePayload = {
|
|
360
|
+
statusCode: 200,
|
|
361
|
+
body: callForwardPayload
|
|
362
|
+
};
|
|
363
|
+
webex.request.mockClear();
|
|
364
|
+
webex.request.mockResolvedValue(responsePayload);
|
|
365
|
+
|
|
366
|
+
// Setup log spies
|
|
367
|
+
jest.spyOn(_Logger.default, 'log').mockImplementation(function () {});
|
|
368
|
+
jest.spyOn(_Logger.default, 'info').mockImplementation(function () {});
|
|
369
|
+
jest.spyOn(_Logger.default, 'warn').mockImplementation(function () {});
|
|
370
|
+
jest.spyOn(_Logger.default, 'error').mockImplementation(function () {});
|
|
371
|
+
});
|
|
372
|
+
it('Success: Get Call Forward Always setting with FedRAMP URL and authorization header', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee9() {
|
|
373
|
+
var response, callForwardSetting;
|
|
374
|
+
return _regenerator.default.wrap(function (_context9) {
|
|
375
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
376
|
+
case 0:
|
|
377
|
+
_context9.next = 1;
|
|
378
|
+
return callSettingsClient.getCallForwardAlwaysSetting('8001');
|
|
379
|
+
case 1:
|
|
380
|
+
response = _context9.sent;
|
|
381
|
+
callForwardSetting = response.data.callSetting;
|
|
382
|
+
expect(response.statusCode).toEqual(200);
|
|
383
|
+
expect(response.message).toEqual(_constants.SUCCESS_MESSAGE);
|
|
384
|
+
expect(callForwardSetting.enabled).toEqual(true);
|
|
385
|
+
expect(callForwardSetting.destination).toEqual('8004');
|
|
386
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
387
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
388
|
+
method: _types2.HTTP_METHODS.GET,
|
|
389
|
+
uri: callForwardingUriFedRamp,
|
|
390
|
+
headers: {
|
|
391
|
+
authorization: MOCK_AUTH_TOKEN
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8001', {
|
|
395
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
396
|
+
method: 'getCallForwardAlwaysSetting'
|
|
397
|
+
});
|
|
398
|
+
expect(_Logger.default.log).toHaveBeenCalledWith('Successfully retrieved call forward always setting for directory number: 8001', {
|
|
399
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
400
|
+
method: 'getCallForwardAlwaysSetting'
|
|
401
|
+
});
|
|
402
|
+
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
403
|
+
case 2:
|
|
404
|
+
case "end":
|
|
405
|
+
return _context9.stop();
|
|
406
|
+
}
|
|
407
|
+
}, _callee9);
|
|
408
|
+
})));
|
|
409
|
+
});
|
|
320
410
|
});
|
|
321
411
|
//# sourceMappingURL=UcmBackendConnector.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_types","require","_Logger","_interopRequireDefault","utils","_interopRequireWildcard","_constants","_testUtil","_types2","_UcmBackendConnector","_constants2","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","jest","spyOn","mockResolvedValue","undefined","describe","webex","getTestUtilsWebex","userId","orgId","callSettingsClient","callForwardPayload","callForwarding","always","dn","destination","destinationVoicemailEnabled","e164Number","callForwardingUri","concat","WEBEX_API_CONFIG_INT_URL","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","beforeAll","UcmBackendConnector","level","LOGGER","INFO","beforeEach","responsePayload","statusCode","body","request","log","mockImplementation","it","_asyncToGenerator2","_regenerator","mark","_callee","response","callForwardSetting","wrap","_callee$","_context","prev","next","getCallForwardAlwaysSetting","sent","data","callSetting","expect","toEqual","message","SUCCESS_MESSAGE","enabled","toBeCalledOnceWith","method","HTTP_METHODS","GET","uri","info","toHaveBeenCalledWith","file","UCM_CONNECTOR_FILE","error","not","toHaveBeenCalled","stop","_callee2","_callee2$","_context2","_callee3","_callee3$","_context3","toBeFalsy","_callee4","_callee4$","_context4","_callee5","serviceErrorCodeHandlerSpy","_callee5$","_context5","mockClear","mockRejectedValue","FAILURE_MESSAGE","name","Error","_callee6","_callee6$","_context6","_callee7","_callee7$","_context7","toBeCalled","unsupportedMethods","each","_ref8","_callee8","methodName","_callee8$","_context8","_x","apply","arguments"],"sources":["UcmBackendConnector.test.ts"],"sourcesContent":["import {LOGGER} from '../Logger/types';\nimport log from '../Logger';\nimport * as utils from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n WEBEX_API_CONFIG_INT_URL,\n} from '../common/constants';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {CF_ENDPOINT, ORG_ENDPOINT, PEOPLE_ENDPOINT} from './constants';\nimport {CallForwardAlwaysSetting, CallForwardingSettingsUCM, IUcmBackendConnector} from './types';\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('Call Settings Client Tests for UcmBackendConnector', () => {\n const webex = getTestUtilsWebex();\n\n const userId = '8a67806f-fc4d-446b-a131-31e71ea5b0e9';\n const orgId = '1704d30d-a131-4bc7-9449-948487643793';\n\n describe('Call Forward Always test', () => {\n let callSettingsClient: IUcmBackendConnector;\n const callForwardPayload: CallForwardingSettingsUCM = {\n callForwarding: {\n always: [\n {\n dn: '8001',\n destination: '8004',\n destinationVoicemailEnabled: false,\n e164Number: '+14922999903',\n },\n {\n dn: '8002',\n destinationVoicemailEnabled: true,\n e164Number: '',\n },\n {\n dn: '8003',\n destinationVoicemailEnabled: false,\n e164Number: '',\n },\n {\n dn: '8000',\n destination: '8007',\n destinationVoicemailEnabled: false,\n e164Number: '8006',\n },\n ],\n },\n };\n\n const callForwardingUri = `${WEBEX_API_CONFIG_INT_URL}/${PEOPLE_ENDPOINT}/${userId}/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${orgId}`;\n\n beforeAll(() => {\n callSettingsClient = new UcmBackendConnector(webex, {level: LOGGER.INFO}, false);\n });\n\n beforeEach(() => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: callForwardPayload,\n });\n\n webex.request.mockResolvedValue(responsePayload);\n\n // Setup log spies\n jest.spyOn(log, 'log').mockImplementation(() => {});\n jest.spyOn(log, 'info').mockImplementation(() => {});\n jest.spyOn(log, 'warn').mockImplementation(() => {});\n jest.spyOn(log, 'error').mockImplementation(() => {});\n });\n\n it('Success: Get Call Forward Always setting when set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8001');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8004');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8001', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8001',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when set to voicemail', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('VOICEMAIL');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8002', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8002',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when not set', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8003');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(false);\n expect(callForwardSetting.destination).toBeFalsy();\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8003', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8003',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when directory num matching with e16number and set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8006');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8007');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8006', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8006',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails', async () => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n });\n\n webex.request.mockClear();\n webex.request.mockRejectedValue(responsePayload);\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n expect(response.statusCode).toEqual(503);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Unable to establish a connection with the server');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(responsePayload, {\n file: UCM_CONNECTOR_FILE,\n method: callSettingsClient.getCallForwardAlwaysSetting.name,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8002', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).toHaveBeenCalledWith(\n new Error('Failed to get call forward always setting: [object Object]'),\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.log).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails - wrong directoryNumber', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8005');\n\n expect(response.statusCode).toEqual(404);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is not assigned to the user');\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8005', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails when no directoryNumberProvided', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting();\n\n expect(response.statusCode).toEqual(400);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is mandatory for UCM backend');\n expect(webex.request).not.toBeCalled();\n\n expect(log.info).toHaveBeenCalledWith('invoking', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).not.toHaveBeenCalled();\n });\n\n describe('Unsupported methods return failure', () => {\n const unsupportedMethods = [\n 'getCallWaitingSetting',\n 'getDoNotDisturbSetting',\n 'setDoNotDisturbSetting',\n 'getCallForwardSetting',\n 'setCallForwardSetting',\n 'getVoicemailSetting',\n 'setVoicemailSetting',\n ];\n\n it.each(unsupportedMethods)('%s', async (methodName) => {\n const response = await callSettingsClient[methodName]();\n\n expect(response.statusCode).toEqual(501);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Method is not implemented at the backend');\n expect(webex.request).not.toBeCalled();\n });\n });\n });\n});\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAC,uBAAA,CAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAMA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,oBAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AAAuE,SAAAI,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,QAAA,MAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAAR,uBAAA,YAAAA,wBAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,gBAAAW,OAAA,CAAAX,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAM,GAAA,CAAAZ,CAAA,UAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,GAAAM,CAAA,CAAAQ,GAAA,CAAAd,CAAA,EAAAQ,CAAA,cAAAO,EAAA,IAAAf,CAAA,gBAAAe,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,EAAA,OAAAR,CAAA,IAAAD,CAAA,GAAAY,sBAAA,KAAAC,gCAAA,CAAAnB,CAAA,EAAAe,EAAA,OAAAR,CAAA,CAAAM,GAAA,IAAAN,CAAA,CAAAO,GAAA,IAAAR,CAAA,CAAAE,CAAA,EAAAO,EAAA,EAAAR,CAAA,IAAAC,CAAA,CAAAO,EAAA,IAAAf,CAAA,CAAAe,EAAA,WAAAP,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAGvEmB,IAAI,CAACC,KAAK,CAAC5B,KAAK,EAAE,YAAY,CAAC,CAAC6B,iBAAiB,CAACC,SAAS,CAAC;AAE5DC,QAAQ,CAAC,oDAAoD,EAAE,YAAM;EACnE,IAAMC,KAAK,GAAG,IAAAC,2BAAiB,EAAC,CAAC;EAEjC,IAAMC,MAAM,GAAG,sCAAsC;EACrD,IAAMC,KAAK,GAAG,sCAAsC;EAEpDJ,QAAQ,CAAC,0BAA0B,EAAE,YAAM;IACzC,IAAIK,kBAAwC;IAC5C,IAAMC,kBAA6C,GAAG;MACpDC,cAAc,EAAE;QACdC,MAAM,EAAE,CACN;UACEC,EAAE,EAAE,MAAM;UACVC,WAAW,EAAE,MAAM;UACnBC,2BAA2B,EAAE,KAAK;UAClCC,UAAU,EAAE;QACd,CAAC,EACD;UACEH,EAAE,EAAE,MAAM;UACVE,2BAA2B,EAAE,IAAI;UACjCC,UAAU,EAAE;QACd,CAAC,EACD;UACEH,EAAE,EAAE,MAAM;UACVE,2BAA2B,EAAE,KAAK;UAClCC,UAAU,EAAE;QACd,CAAC,EACD;UACEH,EAAE,EAAE,MAAM;UACVC,WAAW,EAAE,MAAM;UACnBC,2BAA2B,EAAE,KAAK;UAClCC,UAAU,EAAE;QACd,CAAC;MAEL;IACF,CAAC;IAED,IAAMC,iBAAiB,MAAAC,MAAA,CAAMC,mCAAwB,OAAAD,MAAA,CAAIE,2BAAe,OAAAF,MAAA,CAAIX,MAAM,OAAAW,MAAA,CAAIG,uBAAW,CAACC,WAAW,CAAC,CAAC,OAAAJ,MAAA,CAAIK,wBAAY,OAAAL,MAAA,CAAIV,KAAK,CAAE;IAE1IgB,SAAS,CAAC,YAAM;MACdf,kBAAkB,GAAG,IAAIgB,wCAAmB,CAACpB,KAAK,EAAE;QAACqB,KAAK,EAAEC,aAAM,CAACC;MAAI,CAAC,EAAE,KAAK,CAAC;IAClF,CAAC,CAAC;IAEFC,UAAU,CAAC,YAAM;MACf,IAAMC,eAAe,GAAkC;QACrDC,UAAU,EAAE,GAAG;QACfC,IAAI,EAAEtB;MACR,CAAE;MAEFL,KAAK,CAAC4B,OAAO,CAAC/B,iBAAiB,CAAC4B,eAAe,CAAC;;MAEhD;MACA9B,IAAI,CAACC,KAAK,CAACiC,eAAG,EAAE,KAAK,CAAC,CAACC,kBAAkB,CAAC,YAAM,CAAC,CAAC,CAAC;MACnDnC,IAAI,CAACC,KAAK,CAACiC,eAAG,EAAE,MAAM,CAAC,CAACC,kBAAkB,CAAC,YAAM,CAAC,CAAC,CAAC;MACpDnC,IAAI,CAACC,KAAK,CAACiC,eAAG,EAAE,MAAM,CAAC,CAACC,kBAAkB,CAAC,YAAM,CAAC,CAAC,CAAC;MACpDnC,IAAI,CAACC,KAAK,CAACiC,eAAG,EAAE,OAAO,CAAC,CAACC,kBAAkB,CAAC,YAAM,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IAEFC,EAAE,CAAC,kEAAkE,mBAAAC,kBAAA,CAAA/C,OAAA,eAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAAE,SAAAC,QAAA;MAAA,IAAAC,QAAA,EAAAC,kBAAA;MAAA,OAAAJ,YAAA,CAAAhD,OAAA,CAAAqD,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAC9CtC,kBAAkB,CAACuC,2BAA2B,CAAC,MAAM,CAAC;UAAA;YAAvEP,QAAQ,GAAAI,QAAA,CAAAI,IAAA;YAERP,kBAAkB,GAAGD,QAAQ,CAACS,IAAI,CAACC,WAAW;YAEpDC,MAAM,CAACX,QAAQ,CAACV,UAAU,CAAC,CAACsB,OAAO,CAAC,GAAG,CAAC;YACxCD,MAAM,CAACX,QAAQ,CAACa,OAAO,CAAC,CAACD,OAAO,CAACE,0BAAe,CAAC;YACjDH,MAAM,CAACV,kBAAkB,CAACc,OAAO,CAAC,CAACH,OAAO,CAAC,IAAI,CAAC;YAChDD,MAAM,CAACV,kBAAkB,CAAC5B,WAAW,CAAC,CAACuC,OAAO,CAAC,MAAM,CAAC;YACtDD,MAAM,CAAC/C,KAAK,CAAC4B,OAAO,CAAC,CAACwB,kBAAkB,CAAC;cACvCC,MAAM,EAAEC,oBAAY,CAACC,GAAG;cACxBC,GAAG,EAAE5C;YACP,CAAC,CAAC;YAEFmC,MAAM,CAAClB,eAAG,CAAC4B,IAAI,CAAC,CAACC,oBAAoB,CAAC,oBAAoB,EAAE;cAC1DC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CAAC,CAAC;YACFN,MAAM,CAAClB,eAAG,CAACA,GAAG,CAAC,CAAC6B,oBAAoB,CAClC,+EAA+E,EAC/E;cACEC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CACF,CAAC;YACDN,MAAM,CAAClB,eAAG,CAACgC,KAAK,CAAC,CAACC,GAAG,CAACC,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAvB,QAAA,CAAAwB,IAAA;QAAA;MAAA,GAAA7B,OAAA;IAAA,CAC1C,GAAC;IAEFJ,EAAE,CAAC,gEAAgE,mBAAAC,kBAAA,CAAA/C,OAAA,eAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAAE,SAAA+B,SAAA;MAAA,IAAA7B,QAAA,EAAAC,kBAAA;MAAA,OAAAJ,YAAA,CAAAhD,OAAA,CAAAqD,IAAA,UAAA4B,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA1B,IAAA,GAAA0B,SAAA,CAAAzB,IAAA;UAAA;YAAAyB,SAAA,CAAAzB,IAAA;YAAA,OAC5CtC,kBAAkB,CAACuC,2BAA2B,CAAC,MAAM,CAAC;UAAA;YAAvEP,QAAQ,GAAA+B,SAAA,CAAAvB,IAAA;YAERP,kBAAkB,GAAGD,QAAQ,CAACS,IAAI,CAACC,WAAW;YAEpDC,MAAM,CAACX,QAAQ,CAACV,UAAU,CAAC,CAACsB,OAAO,CAAC,GAAG,CAAC;YACxCD,MAAM,CAACX,QAAQ,CAACa,OAAO,CAAC,CAACD,OAAO,CAACE,0BAAe,CAAC;YACjDH,MAAM,CAACV,kBAAkB,CAACc,OAAO,CAAC,CAACH,OAAO,CAAC,IAAI,CAAC;YAChDD,MAAM,CAACV,kBAAkB,CAAC5B,WAAW,CAAC,CAACuC,OAAO,CAAC,WAAW,CAAC;YAC3DD,MAAM,CAAC/C,KAAK,CAAC4B,OAAO,CAAC,CAACwB,kBAAkB,CAAC;cACvCC,MAAM,EAAEC,oBAAY,CAACC,GAAG;cACxBC,GAAG,EAAE5C;YACP,CAAC,CAAC;YAEFmC,MAAM,CAAClB,eAAG,CAAC4B,IAAI,CAAC,CAACC,oBAAoB,CAAC,oBAAoB,EAAE;cAC1DC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CAAC,CAAC;YACFN,MAAM,CAAClB,eAAG,CAACA,GAAG,CAAC,CAAC6B,oBAAoB,CAClC,+EAA+E,EAC/E;cACEC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CACF,CAAC;YACDN,MAAM,CAAClB,eAAG,CAACgC,KAAK,CAAC,CAACC,GAAG,CAACC,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAI,SAAA,CAAAH,IAAA;QAAA;MAAA,GAAAC,QAAA;IAAA,CAC1C,GAAC;IAEFlC,EAAE,CAAC,uDAAuD,mBAAAC,kBAAA,CAAA/C,OAAA,eAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAAE,SAAAkC,SAAA;MAAA,IAAAhC,QAAA,EAAAC,kBAAA;MAAA,OAAAJ,YAAA,CAAAhD,OAAA,CAAAqD,IAAA,UAAA+B,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA7B,IAAA,GAAA6B,SAAA,CAAA5B,IAAA;UAAA;YAAA4B,SAAA,CAAA5B,IAAA;YAAA,OACnCtC,kBAAkB,CAACuC,2BAA2B,CAAC,MAAM,CAAC;UAAA;YAAvEP,QAAQ,GAAAkC,SAAA,CAAA1B,IAAA;YAERP,kBAAkB,GAAGD,QAAQ,CAACS,IAAI,CAACC,WAAW;YAEpDC,MAAM,CAACX,QAAQ,CAACV,UAAU,CAAC,CAACsB,OAAO,CAAC,GAAG,CAAC;YACxCD,MAAM,CAACX,QAAQ,CAACa,OAAO,CAAC,CAACD,OAAO,CAACE,0BAAe,CAAC;YACjDH,MAAM,CAACV,kBAAkB,CAACc,OAAO,CAAC,CAACH,OAAO,CAAC,KAAK,CAAC;YACjDD,MAAM,CAACV,kBAAkB,CAAC5B,WAAW,CAAC,CAAC8D,SAAS,CAAC,CAAC;YAClDxB,MAAM,CAAC/C,KAAK,CAAC4B,OAAO,CAAC,CAACwB,kBAAkB,CAAC;cACvCC,MAAM,EAAEC,oBAAY,CAACC,GAAG;cACxBC,GAAG,EAAE5C;YACP,CAAC,CAAC;YAEFmC,MAAM,CAAClB,eAAG,CAAC4B,IAAI,CAAC,CAACC,oBAAoB,CAAC,oBAAoB,EAAE;cAC1DC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CAAC,CAAC;YACFN,MAAM,CAAClB,eAAG,CAACA,GAAG,CAAC,CAAC6B,oBAAoB,CAClC,+EAA+E,EAC/E;cACEC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CACF,CAAC;YACDN,MAAM,CAAClB,eAAG,CAACgC,KAAK,CAAC,CAACC,GAAG,CAACC,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAO,SAAA,CAAAN,IAAA;QAAA;MAAA,GAAAI,QAAA;IAAA,CAC1C,GAAC;IAEFrC,EAAE,CAAC,4GAA4G,mBAAAC,kBAAA,CAAA/C,OAAA,eAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAAE,SAAAsC,SAAA;MAAA,IAAApC,QAAA,EAAAC,kBAAA;MAAA,OAAAJ,YAAA,CAAAhD,OAAA,CAAAqD,IAAA,UAAAmC,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAjC,IAAA,GAAAiC,SAAA,CAAAhC,IAAA;UAAA;YAAAgC,SAAA,CAAAhC,IAAA;YAAA,OACxFtC,kBAAkB,CAACuC,2BAA2B,CAAC,MAAM,CAAC;UAAA;YAAvEP,QAAQ,GAAAsC,SAAA,CAAA9B,IAAA;YAERP,kBAAkB,GAAGD,QAAQ,CAACS,IAAI,CAACC,WAAW;YAEpDC,MAAM,CAACX,QAAQ,CAACV,UAAU,CAAC,CAACsB,OAAO,CAAC,GAAG,CAAC;YACxCD,MAAM,CAACX,QAAQ,CAACa,OAAO,CAAC,CAACD,OAAO,CAACE,0BAAe,CAAC;YACjDH,MAAM,CAACV,kBAAkB,CAACc,OAAO,CAAC,CAACH,OAAO,CAAC,IAAI,CAAC;YAChDD,MAAM,CAACV,kBAAkB,CAAC5B,WAAW,CAAC,CAACuC,OAAO,CAAC,MAAM,CAAC;YACtDD,MAAM,CAAC/C,KAAK,CAAC4B,OAAO,CAAC,CAACwB,kBAAkB,CAAC;cACvCC,MAAM,EAAEC,oBAAY,CAACC,GAAG;cACxBC,GAAG,EAAE5C;YACP,CAAC,CAAC;YAEFmC,MAAM,CAAClB,eAAG,CAAC4B,IAAI,CAAC,CAACC,oBAAoB,CAAC,oBAAoB,EAAE;cAC1DC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CAAC,CAAC;YACFN,MAAM,CAAClB,eAAG,CAACA,GAAG,CAAC,CAAC6B,oBAAoB,CAClC,+EAA+E,EAC/E;cACEC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CACF,CAAC;YACDN,MAAM,CAAClB,eAAG,CAACgC,KAAK,CAAC,CAACC,GAAG,CAACC,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAW,SAAA,CAAAV,IAAA;QAAA;MAAA,GAAAQ,QAAA;IAAA,CAC1C,GAAC;IAEFzC,EAAE,CAAC,gDAAgD,mBAAAC,kBAAA,CAAA/C,OAAA,eAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAAE,SAAAyC,SAAA;MAAA,IAAAlD,eAAA,EAAAmD,0BAAA,EAAAxC,QAAA;MAAA,OAAAH,YAAA,CAAAhD,OAAA,CAAAqD,IAAA,UAAAuC,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAArC,IAAA,GAAAqC,SAAA,CAAApC,IAAA;UAAA;YAC7CjB,eAAe,GAAkC;cACrDC,UAAU,EAAE;YACd,CAAC;YAED1B,KAAK,CAAC4B,OAAO,CAACmD,SAAS,CAAC,CAAC;YACzB/E,KAAK,CAAC4B,OAAO,CAACoD,iBAAiB,CAACvD,eAAe,CAAC;YAC1CmD,0BAA0B,GAAGjF,IAAI,CAACC,KAAK,CAAC5B,KAAK,EAAE,yBAAyB,CAAC;YAAA8G,SAAA,CAAApC,IAAA;YAAA,OACxDtC,kBAAkB,CAACuC,2BAA2B,CAAC,MAAM,CAAC;UAAA;YAAvEP,QAAQ,GAAA0C,SAAA,CAAAlC,IAAA;YAEdG,MAAM,CAACX,QAAQ,CAACV,UAAU,CAAC,CAACsB,OAAO,CAAC,GAAG,CAAC;YACxCD,MAAM,CAACX,QAAQ,CAACa,OAAO,CAAC,CAACD,OAAO,CAACiC,0BAAe,CAAC;YACjDlC,MAAM,CAACX,QAAQ,CAACS,IAAI,CAACgB,KAAK,CAAC,CAACb,OAAO,CAAC,kDAAkD,CAAC;YACvFD,MAAM,CAAC/C,KAAK,CAAC4B,OAAO,CAAC,CAACwB,kBAAkB,CAAC;cACvCC,MAAM,EAAEC,oBAAY,CAACC,GAAG;cACxBC,GAAG,EAAE5C;YACP,CAAC,CAAC;YACFmC,MAAM,CAAC6B,0BAA0B,CAAC,CAACxB,kBAAkB,CAAC3B,eAAe,EAAE;cACrEkC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAEjD,kBAAkB,CAACuC,2BAA2B,CAACuC;YACzD,CAAC,CAAC;YAEFnC,MAAM,CAAClB,eAAG,CAAC4B,IAAI,CAAC,CAACC,oBAAoB,CAAC,oBAAoB,EAAE;cAC1DC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CAAC,CAAC;YACFN,MAAM,CAAClB,eAAG,CAACgC,KAAK,CAAC,CAACH,oBAAoB,CACpC,IAAIyB,KAAK,CAAC,4DAA4D,CAAC,EACvE;cACExB,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CACF,CAAC;YACDN,MAAM,CAAClB,eAAG,CAACA,GAAG,CAAC,CAACiC,GAAG,CAACC,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAe,SAAA,CAAAd,IAAA;QAAA;MAAA,GAAAW,QAAA;IAAA,CACxC,GAAC;IAEF5C,EAAE,CAAC,wEAAwE,mBAAAC,kBAAA,CAAA/C,OAAA,eAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAAE,SAAAkD,SAAA;MAAA,IAAAhD,QAAA;MAAA,OAAAH,YAAA,CAAAhD,OAAA,CAAAqD,IAAA,UAAA+C,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA7C,IAAA,GAAA6C,SAAA,CAAA5C,IAAA;UAAA;YAAA4C,SAAA,CAAA5C,IAAA;YAAA,OACpDtC,kBAAkB,CAACuC,2BAA2B,CAAC,MAAM,CAAC;UAAA;YAAvEP,QAAQ,GAAAkD,SAAA,CAAA1C,IAAA;YAEdG,MAAM,CAACX,QAAQ,CAACV,UAAU,CAAC,CAACsB,OAAO,CAAC,GAAG,CAAC;YACxCD,MAAM,CAACX,QAAQ,CAACa,OAAO,CAAC,CAACD,OAAO,CAACiC,0BAAe,CAAC;YACjDlC,MAAM,CAACX,QAAQ,CAACS,IAAI,CAACgB,KAAK,CAAC,CAACb,OAAO,CAAC,8CAA8C,CAAC;YACnFD,MAAM,CAAC/C,KAAK,CAAC4B,OAAO,CAAC,CAACwB,kBAAkB,CAAC;cACvCC,MAAM,EAAEC,oBAAY,CAACC,GAAG;cACxBC,GAAG,EAAE5C;YACP,CAAC,CAAC;YAEFmC,MAAM,CAAClB,eAAG,CAAC4B,IAAI,CAAC,CAACC,oBAAoB,CAAC,oBAAoB,EAAE;cAC1DC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CAAC,CAAC;YACFN,MAAM,CAAClB,eAAG,CAACgC,KAAK,CAAC,CAACC,GAAG,CAACC,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAuB,SAAA,CAAAtB,IAAA;QAAA;MAAA,GAAAoB,QAAA;IAAA,CAC1C,GAAC;IAEFrD,EAAE,CAAC,gFAAgF,mBAAAC,kBAAA,CAAA/C,OAAA,eAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAAE,SAAAqD,SAAA;MAAA,IAAAnD,QAAA;MAAA,OAAAH,YAAA,CAAAhD,OAAA,CAAAqD,IAAA,UAAAkD,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAhD,IAAA,GAAAgD,SAAA,CAAA/C,IAAA;UAAA;YAAA+C,SAAA,CAAA/C,IAAA;YAAA,OAC5DtC,kBAAkB,CAACuC,2BAA2B,CAAC,CAAC;UAAA;YAAjEP,QAAQ,GAAAqD,SAAA,CAAA7C,IAAA;YAEdG,MAAM,CAACX,QAAQ,CAACV,UAAU,CAAC,CAACsB,OAAO,CAAC,GAAG,CAAC;YACxCD,MAAM,CAACX,QAAQ,CAACa,OAAO,CAAC,CAACD,OAAO,CAACiC,0BAAe,CAAC;YACjDlC,MAAM,CAACX,QAAQ,CAACS,IAAI,CAACgB,KAAK,CAAC,CAACb,OAAO,CAAC,+CAA+C,CAAC;YACpFD,MAAM,CAAC/C,KAAK,CAAC4B,OAAO,CAAC,CAACkC,GAAG,CAAC4B,UAAU,CAAC,CAAC;YAEtC3C,MAAM,CAAClB,eAAG,CAAC4B,IAAI,CAAC,CAACC,oBAAoB,CAAC,UAAU,EAAE;cAChDC,IAAI,EAAEC,6BAAkB;cACxBP,MAAM,EAAE;YACV,CAAC,CAAC;YACFN,MAAM,CAAClB,eAAG,CAACgC,KAAK,CAAC,CAACC,GAAG,CAACC,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAA0B,SAAA,CAAAzB,IAAA;QAAA;MAAA,GAAAuB,QAAA;IAAA,CAC1C,GAAC;IAEFxF,QAAQ,CAAC,oCAAoC,EAAE,YAAM;MACnD,IAAM4F,kBAAkB,GAAG,CACzB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,CACtB;MAED5D,EAAE,CAAC6D,IAAI,CAACD,kBAAkB,CAAC,CAAC,IAAI;QAAA,IAAAE,KAAA,OAAA7D,kBAAA,CAAA/C,OAAA,eAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAAE,SAAA4D,SAAOC,UAAU;UAAA,IAAA3D,QAAA;UAAA,OAAAH,YAAA,CAAAhD,OAAA,CAAAqD,IAAA,UAAA0D,UAAAC,SAAA;YAAA,kBAAAA,SAAA,CAAAxD,IAAA,GAAAwD,SAAA,CAAAvD,IAAA;cAAA;gBAAAuD,SAAA,CAAAvD,IAAA;gBAAA,OAC1BtC,kBAAkB,CAAC2F,UAAU,CAAC,CAAC,CAAC;cAAA;gBAAjD3D,QAAQ,GAAA6D,SAAA,CAAArD,IAAA;gBAEdG,MAAM,CAACX,QAAQ,CAACV,UAAU,CAAC,CAACsB,OAAO,CAAC,GAAG,CAAC;gBACxCD,MAAM,CAACX,QAAQ,CAACa,OAAO,CAAC,CAACD,OAAO,CAACiC,0BAAe,CAAC;gBACjDlC,MAAM,CAACX,QAAQ,CAACS,IAAI,CAACgB,KAAK,CAAC,CAACb,OAAO,CAAC,0CAA0C,CAAC;gBAC/ED,MAAM,CAAC/C,KAAK,CAAC4B,OAAO,CAAC,CAACkC,GAAG,CAAC4B,UAAU,CAAC,CAAC;cAAC;cAAA;gBAAA,OAAAO,SAAA,CAAAjC,IAAA;YAAA;UAAA,GAAA8B,QAAA;QAAA,CACxC;QAAA,iBAAAI,EAAA;UAAA,OAAAL,KAAA,CAAAM,KAAA,OAAAC,SAAA;QAAA;MAAA,IAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_types","require","_Logger","_interopRequireDefault","utils","_interopRequireWildcard","_constants","_testUtil","_types2","_UcmBackendConnector","_constants2","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","jest","spyOn","mockResolvedValue","undefined","describe","webex","getTestUtilsWebex","userId","orgId","callSettingsClient","callForwardPayload","callForwarding","always","dn","destination","destinationVoicemailEnabled","e164Number","callForwardingUri","concat","WEBEX_API_CONFIG_INT_URL","PEOPLE_ENDPOINT","CF_ENDPOINT","toLowerCase","ORG_ENDPOINT","beforeAll","UcmBackendConnector","level","LOGGER","INFO","beforeEach","responsePayload","statusCode","body","request","log","mockImplementation","it","_asyncToGenerator2","_regenerator","mark","_callee","response","callForwardSetting","wrap","_context","prev","next","getCallForwardAlwaysSetting","sent","data","callSetting","expect","toEqual","message","SUCCESS_MESSAGE","enabled","toHaveBeenCalledTimes","toHaveBeenCalledWith","method","HTTP_METHODS","GET","uri","headers","info","file","UCM_CONNECTOR_FILE","error","not","toHaveBeenCalled","stop","_callee2","_context2","_callee3","_context3","toBeFalsy","_callee4","_context4","_callee5","serviceErrorCodeHandlerSpy","_context5","mockClear","mockRejectedValue","FAILURE_MESSAGE","name","_stringify","_callee6","_context6","_callee7","_context7","unsupportedMethods","each","_ref8","_callee8","methodName","_context8","_x","apply","arguments","MOCK_AUTH_TOKEN","callForwardingUriFedRamp","WEBEX_API_CONFIG_FEDRAMP_URL","config","fedramp","credentials","getUserToken","afterAll","_callee9","_context9","authorization"],"sources":["UcmBackendConnector.test.ts"],"sourcesContent":["import {LOGGER} from '../Logger/types';\nimport log from '../Logger';\nimport * as utils from '../common/Utils';\nimport {\n FAILURE_MESSAGE,\n SUCCESS_MESSAGE,\n UCM_CONNECTOR_FILE,\n WEBEX_API_CONFIG_INT_URL,\n WEBEX_API_CONFIG_FEDRAMP_URL,\n} from '../common/constants';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {HTTP_METHODS, WebexRequestPayload} from '../common/types';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {CF_ENDPOINT, ORG_ENDPOINT, PEOPLE_ENDPOINT} from './constants';\nimport {CallForwardAlwaysSetting, CallForwardingSettingsUCM, IUcmBackendConnector} from './types';\n\njest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);\n\ndescribe('Call Settings Client Tests for UcmBackendConnector', () => {\n const webex = getTestUtilsWebex();\n\n const userId = '8a67806f-fc4d-446b-a131-31e71ea5b0e9';\n const orgId = '1704d30d-a131-4bc7-9449-948487643793';\n\n describe('Call Forward Always test', () => {\n let callSettingsClient: IUcmBackendConnector;\n const callForwardPayload: CallForwardingSettingsUCM = {\n callForwarding: {\n always: [\n {\n dn: '8001',\n destination: '8004',\n destinationVoicemailEnabled: false,\n e164Number: '+14922999903',\n },\n {\n dn: '8002',\n destinationVoicemailEnabled: true,\n e164Number: '',\n },\n {\n dn: '8003',\n destinationVoicemailEnabled: false,\n e164Number: '',\n },\n {\n dn: '8000',\n destination: '8007',\n destinationVoicemailEnabled: false,\n e164Number: '8006',\n },\n ],\n },\n };\n\n const callForwardingUri = `${WEBEX_API_CONFIG_INT_URL}/${PEOPLE_ENDPOINT}/${userId}/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${orgId}`;\n\n beforeAll(() => {\n callSettingsClient = new UcmBackendConnector(webex, {level: LOGGER.INFO}, false);\n });\n\n beforeEach(() => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: callForwardPayload,\n });\n\n webex.request.mockResolvedValue(responsePayload);\n\n // Setup log spies\n jest.spyOn(log, 'log').mockImplementation(() => {});\n jest.spyOn(log, 'info').mockImplementation(() => {});\n jest.spyOn(log, 'warn').mockImplementation(() => {});\n jest.spyOn(log, 'error').mockImplementation(() => {});\n });\n\n it('Success: Get Call Forward Always setting when set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8001');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8004');\n expect(webex.request).toHaveBeenCalledTimes(1);\n expect(webex.request).toHaveBeenCalledWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n headers: {},\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8001', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8001',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when set to voicemail', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('VOICEMAIL');\n expect(webex.request).toHaveBeenCalledTimes(1);\n expect(webex.request).toHaveBeenCalledWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n headers: {},\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8002', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8002',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when not set', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8003');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(false);\n expect(callForwardSetting.destination).toBeFalsy();\n expect(webex.request).toHaveBeenCalledTimes(1);\n expect(webex.request).toHaveBeenCalledWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n headers: {},\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8003', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8003',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Success: Get Call Forward Always setting when directory num matching with e16number and set to destination', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8006');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8007');\n expect(webex.request).toHaveBeenCalledTimes(1);\n expect(webex.request).toHaveBeenCalledWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n headers: {},\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8006', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8006',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails', async () => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 503,\n });\n\n webex.request.mockClear();\n webex.request.mockRejectedValue(responsePayload);\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8002');\n\n expect(response.statusCode).toEqual(503);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Unable to establish a connection with the server');\n expect(webex.request).toHaveBeenCalledTimes(1);\n expect(webex.request).toHaveBeenCalledWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n headers: {},\n });\n expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledTimes(1);\n expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledWith(responsePayload, {\n file: UCM_CONNECTOR_FILE,\n method: callSettingsClient.getCallForwardAlwaysSetting.name,\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8002', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).toHaveBeenCalledWith(\n `Failed to get call forward always setting: ${JSON.stringify(responsePayload)}`,\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.log).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails - wrong directoryNumber', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8005');\n\n expect(response.statusCode).toEqual(404);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is not assigned to the user');\n expect(webex.request).toHaveBeenCalledTimes(1);\n expect(webex.request).toHaveBeenCalledWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUri,\n headers: {},\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8005', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).not.toHaveBeenCalled();\n });\n\n it('Failure: Get Call Forward Always setting fails when no directoryNumberProvided', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting();\n\n expect(response.statusCode).toEqual(400);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Directory Number is mandatory for UCM backend');\n expect(webex.request).not.toHaveBeenCalled();\n\n expect(log.info).toHaveBeenCalledWith('invoking', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.error).not.toHaveBeenCalled();\n });\n\n describe('Unsupported methods return failure', () => {\n const unsupportedMethods = [\n 'getCallWaitingSetting',\n 'getDoNotDisturbSetting',\n 'setDoNotDisturbSetting',\n 'getCallForwardSetting',\n 'setCallForwardSetting',\n 'getVoicemailSetting',\n 'setVoicemailSetting',\n ];\n\n it.each(unsupportedMethods)('%s', async (methodName) => {\n const response = await callSettingsClient[methodName]();\n\n expect(response.statusCode).toEqual(501);\n expect(response.message).toEqual(FAILURE_MESSAGE);\n expect(response.data.error).toEqual('Method is not implemented at the backend');\n expect(webex.request).not.toHaveBeenCalled();\n });\n });\n });\n\n describe('FedRAMP Call Forward Always test', () => {\n let callSettingsClient: IUcmBackendConnector;\n const MOCK_AUTH_TOKEN = 'mockAuthToken';\n const callForwardPayload: CallForwardingSettingsUCM = {\n callForwarding: {\n always: [\n {\n dn: '8001',\n destination: '8004',\n destinationVoicemailEnabled: false,\n e164Number: '+14922999903',\n },\n ],\n },\n };\n\n const callForwardingUriFedRamp = `${WEBEX_API_CONFIG_FEDRAMP_URL}/${PEOPLE_ENDPOINT}/${userId}/${CF_ENDPOINT.toLowerCase()}?${ORG_ENDPOINT}=${orgId}`;\n\n beforeAll(() => {\n webex.config.fedramp = true;\n webex.credentials.getUserToken.mockResolvedValue(MOCK_AUTH_TOKEN);\n callSettingsClient = new UcmBackendConnector(webex, {level: LOGGER.INFO}, true);\n });\n\n afterAll(() => {\n webex.config.fedramp = false;\n });\n\n beforeEach(() => {\n const responsePayload = <WebexRequestPayload>(<unknown>{\n statusCode: 200,\n body: callForwardPayload,\n });\n\n webex.request.mockClear();\n webex.request.mockResolvedValue(responsePayload);\n\n // Setup log spies\n jest.spyOn(log, 'log').mockImplementation(() => {});\n jest.spyOn(log, 'info').mockImplementation(() => {});\n jest.spyOn(log, 'warn').mockImplementation(() => {});\n jest.spyOn(log, 'error').mockImplementation(() => {});\n });\n\n it('Success: Get Call Forward Always setting with FedRAMP URL and authorization header', async () => {\n const response = await callSettingsClient.getCallForwardAlwaysSetting('8001');\n\n const callForwardSetting = response.data.callSetting as CallForwardAlwaysSetting;\n\n expect(response.statusCode).toEqual(200);\n expect(response.message).toEqual(SUCCESS_MESSAGE);\n expect(callForwardSetting.enabled).toEqual(true);\n expect(callForwardSetting.destination).toEqual('8004');\n expect(webex.request).toHaveBeenCalledTimes(1);\n expect(webex.request).toHaveBeenCalledWith({\n method: HTTP_METHODS.GET,\n uri: callForwardingUriFedRamp,\n headers: {\n authorization: MOCK_AUTH_TOKEN,\n },\n });\n\n expect(log.info).toHaveBeenCalledWith('invoking with 8001', {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n });\n expect(log.log).toHaveBeenCalledWith(\n 'Successfully retrieved call forward always setting for directory number: 8001',\n {\n file: UCM_CONNECTOR_FILE,\n method: 'getCallForwardAlwaysSetting',\n }\n );\n expect(log.error).not.toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|