@webex/calling 3.11.0 → 3.12.0
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 +596 -0
- package/dist/CallHistory/CallHistory.js.map +1 -0
- package/dist/CallHistory/CallHistory.test.js +916 -0
- package/dist/CallHistory/CallHistory.test.js.map +1 -0
- package/dist/CallHistory/callHistoryFixtures.js +650 -0
- package/dist/CallHistory/callHistoryFixtures.js.map +1 -0
- package/dist/CallHistory/constants.js +38 -0
- package/dist/CallHistory/constants.js.map +1 -0
- package/dist/CallHistory/types.js +7 -0
- package/dist/CallHistory/types.js.map +1 -0
- package/dist/CallSettings/CallSettings.js +311 -0
- package/dist/CallSettings/CallSettings.js.map +1 -0
- package/dist/CallSettings/CallSettings.test.js +122 -0
- package/dist/CallSettings/CallSettings.test.js.map +1 -0
- package/dist/CallSettings/UcmBackendConnector.js +308 -0
- package/dist/CallSettings/UcmBackendConnector.js.map +1 -0
- package/dist/CallSettings/UcmBackendConnector.test.js +411 -0
- package/dist/CallSettings/UcmBackendConnector.test.js.map +1 -0
- package/dist/CallSettings/WxCallBackendConnector.js +597 -0
- package/dist/CallSettings/WxCallBackendConnector.js.map +1 -0
- package/dist/CallSettings/WxCallBackendConnector.test.js +904 -0
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +1 -0
- package/dist/CallSettings/constants.js +31 -0
- package/dist/CallSettings/constants.js.map +1 -0
- package/dist/CallSettings/testFixtures.js +68 -0
- package/dist/CallSettings/testFixtures.js.map +1 -0
- package/dist/CallSettings/types.js +7 -0
- package/dist/CallSettings/types.js.map +1 -0
- package/dist/CallingClient/CallingClient.js +1119 -0
- package/dist/CallingClient/CallingClient.js.map +1 -0
- package/dist/CallingClient/CallingClient.test.js +1266 -0
- package/dist/CallingClient/CallingClient.test.js.map +1 -0
- package/dist/CallingClient/callRecordFixtures.js +101 -0
- package/dist/CallingClient/callRecordFixtures.js.map +1 -0
- package/dist/CallingClient/calling/CallerId/index.js +275 -0
- package/dist/CallingClient/calling/CallerId/index.js.map +1 -0
- package/dist/CallingClient/calling/CallerId/index.test.js +275 -0
- package/dist/CallingClient/calling/CallerId/index.test.js.map +1 -0
- package/dist/CallingClient/calling/CallerId/types.js +7 -0
- package/dist/CallingClient/calling/CallerId/types.js.map +1 -0
- package/dist/CallingClient/calling/call.js +3486 -0
- package/dist/CallingClient/calling/call.js.map +1 -0
- package/dist/CallingClient/calling/call.test.js +3612 -0
- package/dist/CallingClient/calling/call.test.js.map +1 -0
- package/dist/CallingClient/calling/callManager.js +460 -0
- package/dist/CallingClient/calling/callManager.js.map +1 -0
- package/dist/CallingClient/calling/callManager.test.js +741 -0
- package/dist/CallingClient/calling/callManager.test.js.map +1 -0
- package/dist/CallingClient/calling/index.js +30 -0
- package/dist/CallingClient/calling/index.js.map +1 -0
- package/dist/CallingClient/calling/types.js +74 -0
- package/dist/CallingClient/calling/types.js.map +1 -0
- package/dist/CallingClient/callingClientFixtures.js +143 -0
- package/dist/CallingClient/callingClientFixtures.js.map +1 -0
- package/dist/CallingClient/constants.js +243 -0
- package/dist/CallingClient/constants.js.map +1 -0
- package/dist/CallingClient/line/index.js +332 -0
- package/dist/CallingClient/line/index.js.map +1 -0
- package/dist/CallingClient/line/line.test.js +327 -0
- package/dist/CallingClient/line/line.test.js.map +1 -0
- package/dist/CallingClient/line/types.js +21 -0
- package/dist/CallingClient/line/types.js.map +1 -0
- package/dist/CallingClient/registration/index.js +19 -0
- package/dist/CallingClient/registration/index.js.map +1 -0
- package/dist/CallingClient/registration/register.js +1686 -0
- package/dist/CallingClient/registration/register.js.map +1 -0
- package/dist/CallingClient/registration/register.test.js +1885 -0
- package/dist/CallingClient/registration/register.test.js.map +1 -0
- package/dist/CallingClient/registration/registerFixtures.js +36 -0
- package/dist/CallingClient/registration/registerFixtures.js.map +1 -0
- package/dist/CallingClient/registration/types.js +7 -0
- package/dist/CallingClient/registration/types.js.map +1 -0
- package/dist/CallingClient/registration/webWorker.js +130 -0
- package/dist/CallingClient/registration/webWorker.js.map +1 -0
- package/dist/CallingClient/registration/webWorker.test.js +303 -0
- package/dist/CallingClient/registration/webWorker.test.js.map +1 -0
- package/dist/CallingClient/registration/webWorkerStr.js +15 -0
- package/dist/CallingClient/registration/webWorkerStr.js.map +1 -0
- package/dist/CallingClient/types.js +7 -0
- package/dist/CallingClient/types.js.map +1 -0
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js +142 -0
- package/dist/CallingClient/windowsChromiumIceWarmupUtils.js.map +1 -0
- package/dist/Contacts/ContactsClient.js +1206 -0
- package/dist/Contacts/ContactsClient.js.map +1 -0
- package/dist/Contacts/ContactsClient.test.js +1004 -0
- package/dist/Contacts/ContactsClient.test.js.map +1 -0
- package/dist/Contacts/constants.js +40 -0
- package/dist/Contacts/constants.js.map +1 -0
- package/dist/Contacts/contactFixtures.js +430 -0
- package/dist/Contacts/contactFixtures.js.map +1 -0
- package/dist/Contacts/types.js +43 -0
- package/dist/Contacts/types.js.map +1 -0
- package/dist/Errors/catalog/CallError.js +89 -0
- package/dist/Errors/catalog/CallError.js.map +1 -0
- package/dist/Errors/catalog/CallingDeviceError.js +83 -0
- package/dist/Errors/catalog/CallingDeviceError.js.map +1 -0
- package/dist/Errors/catalog/ExtendedError.js +42 -0
- package/dist/Errors/catalog/ExtendedError.js.map +1 -0
- package/dist/Errors/catalog/LineError.js +85 -0
- package/dist/Errors/catalog/LineError.js.map +1 -0
- package/dist/Errors/index.js +28 -0
- package/dist/Errors/index.js.map +1 -0
- package/dist/Errors/types.js +59 -0
- package/dist/Errors/types.js.map +1 -0
- package/dist/Events/impl/index.js +79 -0
- package/dist/Events/impl/index.js.map +1 -0
- package/dist/Events/types.js +107 -0
- package/dist/Events/types.js.map +1 -0
- package/dist/Logger/index.js +228 -0
- package/dist/Logger/index.js.map +1 -0
- package/dist/Logger/index.test.js +87 -0
- package/dist/Logger/index.test.js.map +1 -0
- package/dist/Logger/types.js +34 -0
- package/dist/Logger/types.js.map +1 -0
- package/dist/Metrics/index.js +534 -0
- package/dist/Metrics/index.js.map +1 -0
- package/dist/Metrics/index.test.js +463 -0
- package/dist/Metrics/index.test.js.map +1 -0
- package/dist/Metrics/types.js +64 -0
- package/dist/Metrics/types.js.map +1 -0
- package/dist/SDKConnector/index.js +102 -0
- package/dist/SDKConnector/index.js.map +1 -0
- package/dist/SDKConnector/index.test.js +9 -0
- package/dist/SDKConnector/index.test.js.map +1 -0
- package/dist/SDKConnector/types.js +7 -0
- package/dist/SDKConnector/types.js.map +1 -0
- package/dist/SDKConnector/utils.js +39 -0
- package/dist/SDKConnector/utils.js.map +1 -0
- package/dist/SDKConnector/utils.test.js +9 -0
- package/dist/SDKConnector/utils.test.js.map +1 -0
- package/dist/Voicemail/BroadworksBackendConnector.js +699 -0
- package/dist/Voicemail/BroadworksBackendConnector.js.map +1 -0
- package/dist/Voicemail/BroadworksBackendConnector.test.js +820 -0
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +1 -0
- package/dist/Voicemail/UcmBackendConnector.js +628 -0
- package/dist/Voicemail/UcmBackendConnector.js.map +1 -0
- package/dist/Voicemail/UcmBackendConnector.test.js +738 -0
- package/dist/Voicemail/UcmBackendConnector.test.js.map +1 -0
- package/dist/Voicemail/Voicemail.js +472 -0
- package/dist/Voicemail/Voicemail.js.map +1 -0
- package/dist/Voicemail/Voicemail.test.js +391 -0
- package/dist/Voicemail/Voicemail.test.js.map +1 -0
- package/dist/Voicemail/WxCallBackendConnector.js +657 -0
- package/dist/Voicemail/WxCallBackendConnector.js.map +1 -0
- package/dist/Voicemail/WxCallBackendConnector.test.js +1225 -0
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +1 -0
- package/dist/Voicemail/constants.js +61 -0
- package/dist/Voicemail/constants.js.map +1 -0
- package/dist/Voicemail/types.js +7 -0
- package/dist/Voicemail/types.js.map +1 -0
- package/dist/Voicemail/voicemailFixture.js +524 -0
- package/dist/Voicemail/voicemailFixture.js.map +1 -0
- package/dist/api.js +157 -0
- package/dist/api.js.map +1 -0
- package/dist/common/Utils.js +1483 -0
- package/dist/common/Utils.js.map +1 -0
- package/dist/common/Utils.test.js +1989 -0
- package/dist/common/Utils.test.js.map +1 -0
- package/dist/common/constants.js +62 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/index.js +19 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/testUtil.js +983 -0
- package/dist/common/testUtil.js.map +1 -0
- package/dist/common/types.js +75 -0
- package/dist/common/types.js.map +1 -0
- package/dist/index.js +321 -0
- package/dist/index.js.map +1 -0
- package/dist/module/CallHistory/CallHistory.js +28 -17
- package/dist/module/CallingClient/CallingClient.js +43 -1
- package/dist/module/CallingClient/calling/call.js +3 -2
- package/dist/module/CallingClient/constants.js +2 -0
- package/dist/module/CallingClient/registration/register.js +8 -0
- package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
- package/dist/types/CallingClient/CallingClient.d.ts +2 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +2 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +2 -1
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +2 -1
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/types.d.ts +2 -1
- package/dist/types/CallingClient/types.d.ts.map +1 -1
- package/dist/types/common/types.d.ts +4 -0
- package/dist/types/common/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
8
|
+
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
11
|
+
var _types = require("../Logger/types");
|
|
12
|
+
var _Logger = _interopRequireDefault(require("../Logger"));
|
|
13
|
+
var utils = _interopRequireWildcard(require("../common/Utils"));
|
|
14
|
+
var _constants = require("../common/constants");
|
|
15
|
+
var _testUtil = require("../common/testUtil");
|
|
16
|
+
var _types2 = require("../common/types");
|
|
17
|
+
var _UcmBackendConnector = require("./UcmBackendConnector");
|
|
18
|
+
var _constants2 = require("./constants");
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
|
+
jest.spyOn(utils, 'uploadLogs').mockResolvedValue(undefined);
|
|
21
|
+
describe('Call Settings Client Tests for UcmBackendConnector', function () {
|
|
22
|
+
var webex = (0, _testUtil.getTestUtilsWebex)();
|
|
23
|
+
var userId = '8a67806f-fc4d-446b-a131-31e71ea5b0e9';
|
|
24
|
+
var orgId = '1704d30d-a131-4bc7-9449-948487643793';
|
|
25
|
+
describe('Call Forward Always test', function () {
|
|
26
|
+
var callSettingsClient;
|
|
27
|
+
var callForwardPayload = {
|
|
28
|
+
callForwarding: {
|
|
29
|
+
always: [{
|
|
30
|
+
dn: '8001',
|
|
31
|
+
destination: '8004',
|
|
32
|
+
destinationVoicemailEnabled: false,
|
|
33
|
+
e164Number: '+14922999903'
|
|
34
|
+
}, {
|
|
35
|
+
dn: '8002',
|
|
36
|
+
destinationVoicemailEnabled: true,
|
|
37
|
+
e164Number: ''
|
|
38
|
+
}, {
|
|
39
|
+
dn: '8003',
|
|
40
|
+
destinationVoicemailEnabled: false,
|
|
41
|
+
e164Number: ''
|
|
42
|
+
}, {
|
|
43
|
+
dn: '8000',
|
|
44
|
+
destination: '8007',
|
|
45
|
+
destinationVoicemailEnabled: false,
|
|
46
|
+
e164Number: '8006'
|
|
47
|
+
}]
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
var callForwardingUri = "".concat(_constants.WEBEX_API_CONFIG_INT_URL, "/").concat(_constants2.PEOPLE_ENDPOINT, "/").concat(userId, "/").concat(_constants2.CF_ENDPOINT.toLowerCase(), "?").concat(_constants2.ORG_ENDPOINT, "=").concat(orgId);
|
|
51
|
+
beforeAll(function () {
|
|
52
|
+
callSettingsClient = new _UcmBackendConnector.UcmBackendConnector(webex, {
|
|
53
|
+
level: _types.LOGGER.INFO
|
|
54
|
+
}, false);
|
|
55
|
+
});
|
|
56
|
+
beforeEach(function () {
|
|
57
|
+
var responsePayload = {
|
|
58
|
+
statusCode: 200,
|
|
59
|
+
body: callForwardPayload
|
|
60
|
+
};
|
|
61
|
+
webex.request.mockResolvedValue(responsePayload);
|
|
62
|
+
|
|
63
|
+
// Setup log spies
|
|
64
|
+
jest.spyOn(_Logger.default, 'log').mockImplementation(function () {});
|
|
65
|
+
jest.spyOn(_Logger.default, 'info').mockImplementation(function () {});
|
|
66
|
+
jest.spyOn(_Logger.default, 'warn').mockImplementation(function () {});
|
|
67
|
+
jest.spyOn(_Logger.default, 'error').mockImplementation(function () {});
|
|
68
|
+
});
|
|
69
|
+
it('Success: Get Call Forward Always setting when set to destination', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
70
|
+
var response, callForwardSetting;
|
|
71
|
+
return _regenerator.default.wrap(function (_context) {
|
|
72
|
+
while (1) switch (_context.prev = _context.next) {
|
|
73
|
+
case 0:
|
|
74
|
+
_context.next = 1;
|
|
75
|
+
return callSettingsClient.getCallForwardAlwaysSetting('8001');
|
|
76
|
+
case 1:
|
|
77
|
+
response = _context.sent;
|
|
78
|
+
callForwardSetting = response.data.callSetting;
|
|
79
|
+
expect(response.statusCode).toEqual(200);
|
|
80
|
+
expect(response.message).toEqual(_constants.SUCCESS_MESSAGE);
|
|
81
|
+
expect(callForwardSetting.enabled).toEqual(true);
|
|
82
|
+
expect(callForwardSetting.destination).toEqual('8004');
|
|
83
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
84
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
85
|
+
method: _types2.HTTP_METHODS.GET,
|
|
86
|
+
uri: callForwardingUri,
|
|
87
|
+
headers: {}
|
|
88
|
+
});
|
|
89
|
+
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8001', {
|
|
90
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
91
|
+
method: 'getCallForwardAlwaysSetting'
|
|
92
|
+
});
|
|
93
|
+
expect(_Logger.default.log).toHaveBeenCalledWith('Successfully retrieved call forward always setting for directory number: 8001', {
|
|
94
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
95
|
+
method: 'getCallForwardAlwaysSetting'
|
|
96
|
+
});
|
|
97
|
+
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
98
|
+
case 2:
|
|
99
|
+
case "end":
|
|
100
|
+
return _context.stop();
|
|
101
|
+
}
|
|
102
|
+
}, _callee);
|
|
103
|
+
})));
|
|
104
|
+
it('Success: Get Call Forward Always setting when set to voicemail', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
105
|
+
var response, callForwardSetting;
|
|
106
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
107
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
108
|
+
case 0:
|
|
109
|
+
_context2.next = 1;
|
|
110
|
+
return callSettingsClient.getCallForwardAlwaysSetting('8002');
|
|
111
|
+
case 1:
|
|
112
|
+
response = _context2.sent;
|
|
113
|
+
callForwardSetting = response.data.callSetting;
|
|
114
|
+
expect(response.statusCode).toEqual(200);
|
|
115
|
+
expect(response.message).toEqual(_constants.SUCCESS_MESSAGE);
|
|
116
|
+
expect(callForwardSetting.enabled).toEqual(true);
|
|
117
|
+
expect(callForwardSetting.destination).toEqual('VOICEMAIL');
|
|
118
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
119
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
120
|
+
method: _types2.HTTP_METHODS.GET,
|
|
121
|
+
uri: callForwardingUri,
|
|
122
|
+
headers: {}
|
|
123
|
+
});
|
|
124
|
+
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8002', {
|
|
125
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
126
|
+
method: 'getCallForwardAlwaysSetting'
|
|
127
|
+
});
|
|
128
|
+
expect(_Logger.default.log).toHaveBeenCalledWith('Successfully retrieved call forward always setting for directory number: 8002', {
|
|
129
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
130
|
+
method: 'getCallForwardAlwaysSetting'
|
|
131
|
+
});
|
|
132
|
+
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
133
|
+
case 2:
|
|
134
|
+
case "end":
|
|
135
|
+
return _context2.stop();
|
|
136
|
+
}
|
|
137
|
+
}, _callee2);
|
|
138
|
+
})));
|
|
139
|
+
it('Success: Get Call Forward Always setting when not set', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
140
|
+
var response, callForwardSetting;
|
|
141
|
+
return _regenerator.default.wrap(function (_context3) {
|
|
142
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
143
|
+
case 0:
|
|
144
|
+
_context3.next = 1;
|
|
145
|
+
return callSettingsClient.getCallForwardAlwaysSetting('8003');
|
|
146
|
+
case 1:
|
|
147
|
+
response = _context3.sent;
|
|
148
|
+
callForwardSetting = response.data.callSetting;
|
|
149
|
+
expect(response.statusCode).toEqual(200);
|
|
150
|
+
expect(response.message).toEqual(_constants.SUCCESS_MESSAGE);
|
|
151
|
+
expect(callForwardSetting.enabled).toEqual(false);
|
|
152
|
+
expect(callForwardSetting.destination).toBeFalsy();
|
|
153
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
154
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
155
|
+
method: _types2.HTTP_METHODS.GET,
|
|
156
|
+
uri: callForwardingUri,
|
|
157
|
+
headers: {}
|
|
158
|
+
});
|
|
159
|
+
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8003', {
|
|
160
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
161
|
+
method: 'getCallForwardAlwaysSetting'
|
|
162
|
+
});
|
|
163
|
+
expect(_Logger.default.log).toHaveBeenCalledWith('Successfully retrieved call forward always setting for directory number: 8003', {
|
|
164
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
165
|
+
method: 'getCallForwardAlwaysSetting'
|
|
166
|
+
});
|
|
167
|
+
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
168
|
+
case 2:
|
|
169
|
+
case "end":
|
|
170
|
+
return _context3.stop();
|
|
171
|
+
}
|
|
172
|
+
}, _callee3);
|
|
173
|
+
})));
|
|
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() {
|
|
175
|
+
var response, callForwardSetting;
|
|
176
|
+
return _regenerator.default.wrap(function (_context4) {
|
|
177
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
178
|
+
case 0:
|
|
179
|
+
_context4.next = 1;
|
|
180
|
+
return callSettingsClient.getCallForwardAlwaysSetting('8006');
|
|
181
|
+
case 1:
|
|
182
|
+
response = _context4.sent;
|
|
183
|
+
callForwardSetting = response.data.callSetting;
|
|
184
|
+
expect(response.statusCode).toEqual(200);
|
|
185
|
+
expect(response.message).toEqual(_constants.SUCCESS_MESSAGE);
|
|
186
|
+
expect(callForwardSetting.enabled).toEqual(true);
|
|
187
|
+
expect(callForwardSetting.destination).toEqual('8007');
|
|
188
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
189
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
190
|
+
method: _types2.HTTP_METHODS.GET,
|
|
191
|
+
uri: callForwardingUri,
|
|
192
|
+
headers: {}
|
|
193
|
+
});
|
|
194
|
+
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8006', {
|
|
195
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
196
|
+
method: 'getCallForwardAlwaysSetting'
|
|
197
|
+
});
|
|
198
|
+
expect(_Logger.default.log).toHaveBeenCalledWith('Successfully retrieved call forward always setting for directory number: 8006', {
|
|
199
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
200
|
+
method: 'getCallForwardAlwaysSetting'
|
|
201
|
+
});
|
|
202
|
+
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
203
|
+
case 2:
|
|
204
|
+
case "end":
|
|
205
|
+
return _context4.stop();
|
|
206
|
+
}
|
|
207
|
+
}, _callee4);
|
|
208
|
+
})));
|
|
209
|
+
it('Failure: Get Call Forward Always setting fails', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
210
|
+
var responsePayload, serviceErrorCodeHandlerSpy, response;
|
|
211
|
+
return _regenerator.default.wrap(function (_context5) {
|
|
212
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
213
|
+
case 0:
|
|
214
|
+
responsePayload = {
|
|
215
|
+
statusCode: 503
|
|
216
|
+
};
|
|
217
|
+
webex.request.mockClear();
|
|
218
|
+
webex.request.mockRejectedValue(responsePayload);
|
|
219
|
+
serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');
|
|
220
|
+
_context5.next = 1;
|
|
221
|
+
return callSettingsClient.getCallForwardAlwaysSetting('8002');
|
|
222
|
+
case 1:
|
|
223
|
+
response = _context5.sent;
|
|
224
|
+
expect(response.statusCode).toEqual(503);
|
|
225
|
+
expect(response.message).toEqual(_constants.FAILURE_MESSAGE);
|
|
226
|
+
expect(response.data.error).toEqual('Unable to establish a connection with the server');
|
|
227
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
228
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
229
|
+
method: _types2.HTTP_METHODS.GET,
|
|
230
|
+
uri: callForwardingUri,
|
|
231
|
+
headers: {}
|
|
232
|
+
});
|
|
233
|
+
expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledTimes(1);
|
|
234
|
+
expect(serviceErrorCodeHandlerSpy).toHaveBeenCalledWith(responsePayload, {
|
|
235
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
236
|
+
method: callSettingsClient.getCallForwardAlwaysSetting.name
|
|
237
|
+
});
|
|
238
|
+
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8002', {
|
|
239
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
240
|
+
method: 'getCallForwardAlwaysSetting'
|
|
241
|
+
});
|
|
242
|
+
expect(_Logger.default.error).toHaveBeenCalledWith("Failed to get call forward always setting: ".concat((0, _stringify.default)(responsePayload)), {
|
|
243
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
244
|
+
method: 'getCallForwardAlwaysSetting'
|
|
245
|
+
});
|
|
246
|
+
expect(_Logger.default.log).not.toHaveBeenCalled();
|
|
247
|
+
case 2:
|
|
248
|
+
case "end":
|
|
249
|
+
return _context5.stop();
|
|
250
|
+
}
|
|
251
|
+
}, _callee5);
|
|
252
|
+
})));
|
|
253
|
+
it('Failure: Get Call Forward Always setting fails - wrong directoryNumber', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
254
|
+
var response;
|
|
255
|
+
return _regenerator.default.wrap(function (_context6) {
|
|
256
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
257
|
+
case 0:
|
|
258
|
+
_context6.next = 1;
|
|
259
|
+
return callSettingsClient.getCallForwardAlwaysSetting('8005');
|
|
260
|
+
case 1:
|
|
261
|
+
response = _context6.sent;
|
|
262
|
+
expect(response.statusCode).toEqual(404);
|
|
263
|
+
expect(response.message).toEqual(_constants.FAILURE_MESSAGE);
|
|
264
|
+
expect(response.data.error).toEqual('Directory Number is not assigned to the user');
|
|
265
|
+
expect(webex.request).toHaveBeenCalledTimes(1);
|
|
266
|
+
expect(webex.request).toHaveBeenCalledWith({
|
|
267
|
+
method: _types2.HTTP_METHODS.GET,
|
|
268
|
+
uri: callForwardingUri,
|
|
269
|
+
headers: {}
|
|
270
|
+
});
|
|
271
|
+
expect(_Logger.default.info).toHaveBeenCalledWith('invoking with 8005', {
|
|
272
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
273
|
+
method: 'getCallForwardAlwaysSetting'
|
|
274
|
+
});
|
|
275
|
+
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
276
|
+
case 2:
|
|
277
|
+
case "end":
|
|
278
|
+
return _context6.stop();
|
|
279
|
+
}
|
|
280
|
+
}, _callee6);
|
|
281
|
+
})));
|
|
282
|
+
it('Failure: Get Call Forward Always setting fails when no directoryNumberProvided', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
283
|
+
var response;
|
|
284
|
+
return _regenerator.default.wrap(function (_context7) {
|
|
285
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
286
|
+
case 0:
|
|
287
|
+
_context7.next = 1;
|
|
288
|
+
return callSettingsClient.getCallForwardAlwaysSetting();
|
|
289
|
+
case 1:
|
|
290
|
+
response = _context7.sent;
|
|
291
|
+
expect(response.statusCode).toEqual(400);
|
|
292
|
+
expect(response.message).toEqual(_constants.FAILURE_MESSAGE);
|
|
293
|
+
expect(response.data.error).toEqual('Directory Number is mandatory for UCM backend');
|
|
294
|
+
expect(webex.request).not.toHaveBeenCalled();
|
|
295
|
+
expect(_Logger.default.info).toHaveBeenCalledWith('invoking', {
|
|
296
|
+
file: _constants.UCM_CONNECTOR_FILE,
|
|
297
|
+
method: 'getCallForwardAlwaysSetting'
|
|
298
|
+
});
|
|
299
|
+
expect(_Logger.default.error).not.toHaveBeenCalled();
|
|
300
|
+
case 2:
|
|
301
|
+
case "end":
|
|
302
|
+
return _context7.stop();
|
|
303
|
+
}
|
|
304
|
+
}, _callee7);
|
|
305
|
+
})));
|
|
306
|
+
describe('Unsupported methods return failure', function () {
|
|
307
|
+
var unsupportedMethods = ['getCallWaitingSetting', 'getDoNotDisturbSetting', 'setDoNotDisturbSetting', 'getCallForwardSetting', 'setCallForwardSetting', 'getVoicemailSetting', 'setVoicemailSetting'];
|
|
308
|
+
it.each(unsupportedMethods)('%s', /*#__PURE__*/function () {
|
|
309
|
+
var _ref8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee8(methodName) {
|
|
310
|
+
var response;
|
|
311
|
+
return _regenerator.default.wrap(function (_context8) {
|
|
312
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
313
|
+
case 0:
|
|
314
|
+
_context8.next = 1;
|
|
315
|
+
return callSettingsClient[methodName]();
|
|
316
|
+
case 1:
|
|
317
|
+
response = _context8.sent;
|
|
318
|
+
expect(response.statusCode).toEqual(501);
|
|
319
|
+
expect(response.message).toEqual(_constants.FAILURE_MESSAGE);
|
|
320
|
+
expect(response.data.error).toEqual('Method is not implemented at the backend');
|
|
321
|
+
expect(webex.request).not.toHaveBeenCalled();
|
|
322
|
+
case 2:
|
|
323
|
+
case "end":
|
|
324
|
+
return _context8.stop();
|
|
325
|
+
}
|
|
326
|
+
}, _callee8);
|
|
327
|
+
}));
|
|
328
|
+
return function (_x) {
|
|
329
|
+
return _ref8.apply(this, arguments);
|
|
330
|
+
};
|
|
331
|
+
}());
|
|
332
|
+
});
|
|
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
|
+
});
|
|
410
|
+
});
|
|
411
|
+
//# sourceMappingURL=UcmBackendConnector.test.js.map
|
|
@@ -0,0 +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","_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":[]}
|