@webex/calling 3.0.0-next.2 → 3.0.0-next.4
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/CHANGELOG.md +1403 -0
- package/README.md +74 -74
- package/dist/module/CallHistory/CallHistory.js +81 -81
- package/dist/module/CallHistory/callHistoryFixtures.js +307 -307
- package/dist/module/CallHistory/constants.js +9 -9
- package/dist/module/CallHistory/types.js +1 -1
- package/dist/module/CallSettings/CallSettings.js +65 -65
- package/dist/module/CallSettings/UcmBackendConnector.js +100 -100
- package/dist/module/CallSettings/WxCallBackendConnector.js +287 -287
- package/dist/module/CallSettings/constants.js +11 -11
- package/dist/module/CallSettings/testFixtures.js +62 -62
- package/dist/module/CallSettings/types.js +1 -1
- package/dist/module/CallingClient/CallingClient.js +248 -248
- package/dist/module/CallingClient/callRecordFixtures.js +93 -93
- package/dist/module/CallingClient/calling/CallerId/index.js +169 -169
- package/dist/module/CallingClient/calling/CallerId/types.js +1 -1
- package/dist/module/CallingClient/calling/call.js +1658 -1658
- package/dist/module/CallingClient/calling/callManager.js +284 -284
- package/dist/module/CallingClient/calling/index.js +2 -2
- package/dist/module/CallingClient/calling/types.js +53 -53
- package/dist/module/CallingClient/callingClientFixtures.js +38 -38
- package/dist/module/CallingClient/constants.js +122 -122
- package/dist/module/CallingClient/line/index.js +158 -158
- package/dist/module/CallingClient/line/types.js +15 -15
- package/dist/module/CallingClient/registration/index.js +1 -1
- package/dist/module/CallingClient/registration/register.js +507 -507
- package/dist/module/CallingClient/registration/registerFixtures.js +28 -28
- package/dist/module/CallingClient/registration/types.js +1 -1
- package/dist/module/CallingClient/types.js +1 -1
- package/dist/module/Contacts/ContactsClient.js +484 -484
- package/dist/module/Contacts/constants.js +20 -20
- package/dist/module/Contacts/contactFixtures.js +284 -284
- package/dist/module/Contacts/types.js +10 -10
- package/dist/module/Errors/catalog/CallError.js +26 -26
- package/dist/module/Errors/catalog/CallingDeviceError.js +18 -18
- package/dist/module/Errors/catalog/ExtendedError.js +10 -10
- package/dist/module/Errors/catalog/LineError.js +24 -24
- package/dist/module/Errors/index.js +2 -2
- package/dist/module/Errors/types.js +48 -48
- package/dist/module/Events/impl/index.js +19 -19
- package/dist/module/Events/types.js +83 -83
- package/dist/module/Logger/index.js +114 -114
- package/dist/module/Logger/types.js +25 -25
- package/dist/module/Metrics/index.js +232 -232
- package/dist/module/Metrics/types.js +37 -37
- package/dist/module/SDKConnector/index.js +39 -39
- package/dist/module/SDKConnector/types.js +1 -1
- package/dist/module/SDKConnector/utils.js +12 -12
- package/dist/module/Voicemail/BroadworksBackendConnector.js +291 -291
- package/dist/module/Voicemail/UcmBackendConnector.js +279 -279
- package/dist/module/Voicemail/Voicemail.js +110 -110
- package/dist/module/Voicemail/WxCallBackendConnector.js +279 -279
- package/dist/module/Voicemail/constants.js +29 -29
- package/dist/module/Voicemail/types.js +1 -1
- package/dist/module/Voicemail/voicemailFixture.js +510 -510
- package/dist/module/api.js +6 -6
- package/dist/module/common/Utils.js +802 -802
- package/dist/module/common/constants.js +41 -41
- package/dist/module/common/index.js +1 -1
- package/dist/module/common/testUtil.js +938 -938
- package/dist/module/common/types.js +57 -57
- package/dist/module/index.js +8 -8
- package/dist/types/CallHistory/CallHistory.d.ts +17 -17
- package/dist/types/CallHistory/callHistoryFixtures.d.ts +94 -94
- package/dist/types/CallHistory/constants.d.ts +9 -9
- package/dist/types/CallHistory/types.d.ts +18 -18
- package/dist/types/CallSettings/CallSettings.d.ts +19 -19
- package/dist/types/CallSettings/UcmBackendConnector.d.ts +19 -19
- package/dist/types/CallSettings/WxCallBackendConnector.d.ts +21 -21
- package/dist/types/CallSettings/constants.d.ts +11 -11
- package/dist/types/CallSettings/testFixtures.d.ts +15 -15
- package/dist/types/CallSettings/types.d.ts +107 -107
- package/dist/types/CallingClient/CallingClient.d.ts +35 -35
- package/dist/types/CallingClient/callRecordFixtures.d.ts +3 -3
- package/dist/types/CallingClient/calling/CallerId/index.d.ts +17 -17
- package/dist/types/CallingClient/calling/CallerId/types.d.ts +41 -41
- package/dist/types/CallingClient/calling/call.d.ts +96 -96
- package/dist/types/CallingClient/calling/callManager.d.ts +25 -25
- package/dist/types/CallingClient/calling/index.d.ts +2 -2
- package/dist/types/CallingClient/calling/types.d.ts +206 -206
- package/dist/types/CallingClient/callingClientFixtures.d.ts +18 -18
- package/dist/types/CallingClient/constants.d.ts +122 -122
- package/dist/types/CallingClient/line/index.d.ts +43 -43
- package/dist/types/CallingClient/line/types.d.ts +55 -55
- package/dist/types/CallingClient/registration/index.d.ts +1 -1
- package/dist/types/CallingClient/registration/register.d.ts +64 -64
- package/dist/types/CallingClient/registration/registerFixtures.d.ts +28 -28
- package/dist/types/CallingClient/registration/types.d.ts +20 -20
- package/dist/types/CallingClient/types.d.ts +29 -29
- package/dist/types/Contacts/ContactsClient.d.ts +26 -26
- package/dist/types/Contacts/constants.d.ts +19 -19
- package/dist/types/Contacts/contactFixtures.d.ts +280 -280
- package/dist/types/Contacts/types.d.ts +72 -72
- package/dist/types/Errors/catalog/CallError.d.ts +11 -11
- package/dist/types/Errors/catalog/CallingDeviceError.d.ts +10 -10
- package/dist/types/Errors/catalog/ExtendedError.d.ts +6 -6
- package/dist/types/Errors/catalog/LineError.d.ts +10 -10
- package/dist/types/Errors/index.d.ts +2 -2
- package/dist/types/Errors/types.d.ts +60 -60
- package/dist/types/Events/impl/index.d.ts +8 -8
- package/dist/types/Events/types.d.ts +288 -288
- package/dist/types/Logger/index.d.ts +12 -12
- package/dist/types/Logger/types.d.ts +25 -25
- package/dist/types/Metrics/index.d.ts +5 -5
- package/dist/types/Metrics/types.d.ts +42 -42
- package/dist/types/SDKConnector/index.d.ts +12 -12
- package/dist/types/SDKConnector/types.d.ts +128 -128
- package/dist/types/SDKConnector/utils.d.ts +5 -5
- package/dist/types/Voicemail/BroadworksBackendConnector.d.ts +27 -27
- package/dist/types/Voicemail/UcmBackendConnector.d.ts +34 -34
- package/dist/types/Voicemail/Voicemail.d.ts +27 -27
- package/dist/types/Voicemail/WxCallBackendConnector.d.ts +23 -23
- package/dist/types/Voicemail/constants.d.ts +29 -29
- package/dist/types/Voicemail/types.d.ts +133 -133
- package/dist/types/Voicemail/voicemailFixture.d.ts +417 -417
- package/dist/types/api.d.ts +16 -16
- package/dist/types/common/Utils.d.ts +34 -34
- package/dist/types/common/constants.d.ts +41 -41
- package/dist/types/common/index.d.ts +1 -1
- package/dist/types/common/testUtil.d.ts +3611 -3611
- package/dist/types/common/types.d.ts +191 -191
- package/dist/types/index.d.ts +8 -8
- package/package.json +4 -4
- package/dist/CallHistory/CallHistory.js +0 -203
- package/dist/CallHistory/CallHistory.js.map +0 -1
- package/dist/CallHistory/CallHistory.test.js +0 -133
- package/dist/CallHistory/CallHistory.test.js.map +0 -1
- package/dist/CallHistory/callHistoryFixtures.js +0 -310
- package/dist/CallHistory/callHistoryFixtures.js.map +0 -1
- package/dist/CallHistory/constants.js +0 -26
- package/dist/CallHistory/constants.js.map +0 -1
- package/dist/CallHistory/types.js +0 -7
- package/dist/CallHistory/types.js.map +0 -1
- package/dist/CallSettings/CallSettings.js +0 -276
- package/dist/CallSettings/CallSettings.js.map +0 -1
- package/dist/CallSettings/CallSettings.test.js +0 -122
- package/dist/CallSettings/CallSettings.test.js.map +0 -1
- package/dist/CallSettings/UcmBackendConnector.js +0 -217
- package/dist/CallSettings/UcmBackendConnector.js.map +0 -1
- package/dist/CallSettings/UcmBackendConnector.test.js +0 -227
- package/dist/CallSettings/UcmBackendConnector.test.js.map +0 -1
- package/dist/CallSettings/WxCallBackendConnector.js +0 -541
- package/dist/CallSettings/WxCallBackendConnector.js.map +0 -1
- package/dist/CallSettings/WxCallBackendConnector.test.js +0 -802
- package/dist/CallSettings/WxCallBackendConnector.test.js.map +0 -1
- package/dist/CallSettings/constants.js +0 -30
- package/dist/CallSettings/constants.js.map +0 -1
- package/dist/CallSettings/testFixtures.js +0 -72
- package/dist/CallSettings/testFixtures.js.map +0 -1
- package/dist/CallSettings/types.js +0 -7
- package/dist/CallSettings/types.js.map +0 -1
- package/dist/CallingClient/CallingClient.js +0 -572
- package/dist/CallingClient/CallingClient.js.map +0 -1
- package/dist/CallingClient/CallingClient.test.js +0 -931
- package/dist/CallingClient/CallingClient.test.js.map +0 -1
- package/dist/CallingClient/callRecordFixtures.js +0 -103
- package/dist/CallingClient/callRecordFixtures.js.map +0 -1
- package/dist/CallingClient/calling/CallerId/index.js +0 -287
- package/dist/CallingClient/calling/CallerId/index.js.map +0 -1
- package/dist/CallingClient/calling/CallerId/index.test.js +0 -274
- package/dist/CallingClient/calling/CallerId/index.test.js.map +0 -1
- package/dist/CallingClient/calling/CallerId/types.js +0 -7
- package/dist/CallingClient/calling/CallerId/types.js.map +0 -1
- package/dist/CallingClient/calling/call.js +0 -2995
- package/dist/CallingClient/calling/call.js.map +0 -1
- package/dist/CallingClient/calling/call.test.js +0 -2614
- package/dist/CallingClient/calling/call.test.js.map +0 -1
- package/dist/CallingClient/calling/callManager.js +0 -443
- package/dist/CallingClient/calling/callManager.js.map +0 -1
- package/dist/CallingClient/calling/callManager.test.js +0 -683
- package/dist/CallingClient/calling/callManager.test.js.map +0 -1
- package/dist/CallingClient/calling/index.js +0 -30
- package/dist/CallingClient/calling/index.js.map +0 -1
- package/dist/CallingClient/calling/types.js +0 -71
- package/dist/CallingClient/calling/types.js.map +0 -1
- package/dist/CallingClient/callingClientFixtures.js +0 -53
- package/dist/CallingClient/callingClientFixtures.js.map +0 -1
- package/dist/CallingClient/constants.js +0 -226
- package/dist/CallingClient/constants.js.map +0 -1
- package/dist/CallingClient/line/index.js +0 -312
- package/dist/CallingClient/line/index.js.map +0 -1
- package/dist/CallingClient/line/line.test.js +0 -270
- package/dist/CallingClient/line/line.test.js.map +0 -1
- package/dist/CallingClient/line/types.js +0 -25
- package/dist/CallingClient/line/types.js.map +0 -1
- package/dist/CallingClient/registration/index.js +0 -19
- package/dist/CallingClient/registration/index.js.map +0 -1
- package/dist/CallingClient/registration/register.js +0 -1295
- package/dist/CallingClient/registration/register.js.map +0 -1
- package/dist/CallingClient/registration/register.test.js +0 -838
- package/dist/CallingClient/registration/register.test.js.map +0 -1
- package/dist/CallingClient/registration/registerFixtures.js +0 -41
- package/dist/CallingClient/registration/registerFixtures.js.map +0 -1
- package/dist/CallingClient/registration/types.js +0 -7
- package/dist/CallingClient/registration/types.js.map +0 -1
- package/dist/CallingClient/types.js +0 -7
- package/dist/CallingClient/types.js.map +0 -1
- package/dist/Contacts/ContactsClient.js +0 -1139
- package/dist/Contacts/ContactsClient.js.map +0 -1
- package/dist/Contacts/ContactsClient.test.js +0 -725
- package/dist/Contacts/ContactsClient.test.js.map +0 -1
- package/dist/Contacts/constants.js +0 -36
- package/dist/Contacts/constants.js.map +0 -1
- package/dist/Contacts/contactFixtures.js +0 -340
- package/dist/Contacts/contactFixtures.js.map +0 -1
- package/dist/Contacts/types.js +0 -20
- package/dist/Contacts/types.js.map +0 -1
- package/dist/Errors/catalog/CallError.js +0 -94
- package/dist/Errors/catalog/CallError.js.map +0 -1
- package/dist/Errors/catalog/CallingDeviceError.js +0 -88
- package/dist/Errors/catalog/CallingDeviceError.js.map +0 -1
- package/dist/Errors/catalog/ExtendedError.js +0 -45
- package/dist/Errors/catalog/ExtendedError.js.map +0 -1
- package/dist/Errors/catalog/LineError.js +0 -90
- package/dist/Errors/catalog/LineError.js.map +0 -1
- package/dist/Errors/index.js +0 -21
- package/dist/Errors/index.js.map +0 -1
- package/dist/Errors/types.js +0 -62
- package/dist/Errors/types.js.map +0 -1
- package/dist/Events/impl/index.js +0 -82
- package/dist/Events/impl/index.js.map +0 -1
- package/dist/Events/types.js +0 -111
- package/dist/Events/types.js.map +0 -1
- package/dist/Logger/index.js +0 -221
- package/dist/Logger/index.js.map +0 -1
- package/dist/Logger/index.test.js +0 -62
- package/dist/Logger/index.test.js.map +0 -1
- package/dist/Logger/types.js +0 -37
- package/dist/Logger/types.js.map +0 -1
- package/dist/Metrics/index.js +0 -329
- package/dist/Metrics/index.js.map +0 -1
- package/dist/Metrics/index.test.js +0 -291
- package/dist/Metrics/index.test.js.map +0 -1
- package/dist/Metrics/types.js +0 -50
- package/dist/Metrics/types.js.map +0 -1
- package/dist/SDKConnector/index.js +0 -105
- package/dist/SDKConnector/index.js.map +0 -1
- package/dist/SDKConnector/index.test.js +0 -9
- package/dist/SDKConnector/index.test.js.map +0 -1
- package/dist/SDKConnector/types.js +0 -7
- package/dist/SDKConnector/types.js.map +0 -1
- package/dist/SDKConnector/utils.js +0 -40
- package/dist/SDKConnector/utils.js.map +0 -1
- package/dist/SDKConnector/utils.test.js +0 -9
- package/dist/SDKConnector/utils.test.js.map +0 -1
- package/dist/Voicemail/BroadworksBackendConnector.js +0 -632
- package/dist/Voicemail/BroadworksBackendConnector.js.map +0 -1
- package/dist/Voicemail/BroadworksBackendConnector.test.js +0 -733
- package/dist/Voicemail/BroadworksBackendConnector.test.js.map +0 -1
- package/dist/Voicemail/UcmBackendConnector.js +0 -566
- package/dist/Voicemail/UcmBackendConnector.js.map +0 -1
- package/dist/Voicemail/UcmBackendConnector.test.js +0 -628
- package/dist/Voicemail/UcmBackendConnector.test.js.map +0 -1
- package/dist/Voicemail/Voicemail.js +0 -378
- package/dist/Voicemail/Voicemail.js.map +0 -1
- package/dist/Voicemail/Voicemail.test.js +0 -226
- package/dist/Voicemail/Voicemail.test.js.map +0 -1
- package/dist/Voicemail/WxCallBackendConnector.js +0 -540
- package/dist/Voicemail/WxCallBackendConnector.js.map +0 -1
- package/dist/Voicemail/WxCallBackendConnector.test.js +0 -942
- package/dist/Voicemail/WxCallBackendConnector.test.js.map +0 -1
- package/dist/Voicemail/constants.js +0 -66
- package/dist/Voicemail/constants.js.map +0 -1
- package/dist/Voicemail/types.js +0 -7
- package/dist/Voicemail/types.js.map +0 -1
- package/dist/Voicemail/voicemailFixture.js +0 -559
- package/dist/Voicemail/voicemailFixture.js.map +0 -1
- package/dist/api.js +0 -134
- package/dist/api.js.map +0 -1
- package/dist/common/Utils.js +0 -1264
- package/dist/common/Utils.js.map +0 -1
- package/dist/common/Utils.test.js +0 -1227
- package/dist/common/Utils.test.js.map +0 -1
- package/dist/common/constants.js +0 -90
- package/dist/common/constants.js.map +0 -1
- package/dist/common/index.js +0 -19
- package/dist/common/index.js.map +0 -1
- package/dist/common/testUtil.js +0 -968
- package/dist/common/testUtil.js.map +0 -1
- package/dist/common/types.js +0 -75
- package/dist/common/types.js.map +0 -1
- package/dist/index.js +0 -63
- package/dist/index.js.map +0 -1
|
@@ -1,838 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
|
4
|
-
var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
5
|
-
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
6
|
-
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
7
|
-
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
8
|
-
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
9
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
10
|
-
var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
|
11
|
-
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
12
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
13
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
15
|
-
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
16
|
-
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
17
|
-
var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
|
|
18
|
-
var _asyncMutex = require("async-mutex");
|
|
19
|
-
var _register = require("./register");
|
|
20
|
-
var _testUtil = require("../../common/testUtil");
|
|
21
|
-
var _types = require("../../common/types");
|
|
22
|
-
var utils = _interopRequireWildcard(require("../../common/Utils"));
|
|
23
|
-
var _Logger = _interopRequireDefault(require("../../Logger"));
|
|
24
|
-
var _types2 = require("../../Logger/types");
|
|
25
|
-
var _registerFixtures = require("./registerFixtures");
|
|
26
|
-
var _common = require("../../common");
|
|
27
|
-
var _types3 = require("../../Errors/types");
|
|
28
|
-
var _constants = require("../constants");
|
|
29
|
-
var _types4 = require("../line/types");
|
|
30
|
-
var _LineError = require("../../Errors/catalog/LineError");
|
|
31
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
32
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
-
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
|
-
var webex = (0, _testUtil.getTestUtilsWebex)();
|
|
36
|
-
var MockServiceData = {
|
|
37
|
-
indicator: _types.ServiceIndicator.CALLING,
|
|
38
|
-
domain: ''
|
|
39
|
-
};
|
|
40
|
-
var logSpy = jest.spyOn(_Logger.default, 'info');
|
|
41
|
-
var warnSpy = jest.spyOn(_Logger.default, 'warn');
|
|
42
|
-
var handleErrorSpy = jest.spyOn(utils, 'handleRegistrationErrors');
|
|
43
|
-
describe('Registration Tests', function () {
|
|
44
|
-
var originalProcessNextTick = process.nextTick;
|
|
45
|
-
function flushPromises() {
|
|
46
|
-
return new _promise.default(function (resolve) {
|
|
47
|
-
originalProcessNextTick(resolve);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
var lineEmitter = jest.fn();
|
|
51
|
-
var mobiusUris = (0, _common.filterMobiusUris)((0, _testUtil.getMobiusDiscoveryResponse)(), _registerFixtures.URL);
|
|
52
|
-
var mockResponse = _objectSpread(_objectSpread({}, (0, _testUtil.getMockRequestTemplate)()), {}, {
|
|
53
|
-
uri: "".concat(mobiusUris.primary[0], "device"),
|
|
54
|
-
body: {
|
|
55
|
-
userId: webex.internal.device.userId,
|
|
56
|
-
clientDeviceUri: webex.internal.device.url,
|
|
57
|
-
serviceData: {
|
|
58
|
-
domain: '',
|
|
59
|
-
indicator: 'calling'
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
var failurePayload = {
|
|
64
|
-
statusCode: 500,
|
|
65
|
-
body: _registerFixtures.mockPostResponse
|
|
66
|
-
};
|
|
67
|
-
var failurePayload429 = {
|
|
68
|
-
statusCode: 429,
|
|
69
|
-
body: _registerFixtures.mockPostResponse
|
|
70
|
-
};
|
|
71
|
-
var successPayload = {
|
|
72
|
-
statusCode: 200,
|
|
73
|
-
body: _registerFixtures.mockPostResponse
|
|
74
|
-
};
|
|
75
|
-
var reg;
|
|
76
|
-
var restartSpy;
|
|
77
|
-
var failbackRetry429Spy;
|
|
78
|
-
var restoreSpy;
|
|
79
|
-
var postRegistrationSpy;
|
|
80
|
-
beforeEach(function () {
|
|
81
|
-
var mutex = new _asyncMutex.Mutex();
|
|
82
|
-
reg = (0, _register.createRegistration)(webex, MockServiceData, mutex, lineEmitter, _types2.LOGGER.INFO);
|
|
83
|
-
reg.setMobiusServers(mobiusUris.primary, mobiusUris.backup);
|
|
84
|
-
jest.clearAllMocks();
|
|
85
|
-
restartSpy = jest.spyOn(reg, 'restartRegistration');
|
|
86
|
-
failbackRetry429Spy = jest.spyOn(reg, _constants.FAILBACK_429_RETRY_UTIL);
|
|
87
|
-
restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
|
|
88
|
-
postRegistrationSpy = jest.spyOn(reg, 'postRegistration');
|
|
89
|
-
});
|
|
90
|
-
afterEach(function () {
|
|
91
|
-
webex.request = jest.fn();
|
|
92
|
-
jest.clearAllTimers();
|
|
93
|
-
jest.clearAllMocks();
|
|
94
|
-
jest.useRealTimers();
|
|
95
|
-
});
|
|
96
|
-
it('verify successful registration', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
97
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
98
|
-
while (1) switch (_context.prev = _context.next) {
|
|
99
|
-
case 0:
|
|
100
|
-
webex.request.mockReturnValueOnce({
|
|
101
|
-
body: _registerFixtures.mockPostResponse
|
|
102
|
-
});
|
|
103
|
-
_context.next = 3;
|
|
104
|
-
return reg.triggerRegistration();
|
|
105
|
-
case 3:
|
|
106
|
-
expect(webex.request).toBeCalledOnceWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
|
|
107
|
-
method: 'POST'
|
|
108
|
-
}));
|
|
109
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
|
|
110
|
-
expect(lineEmitter).toBeCalledTimes(2);
|
|
111
|
-
expect(lineEmitter).toBeCalledWith(_types4.LINE_EVENTS.CONNECTING);
|
|
112
|
-
expect(lineEmitter).toBeCalledWith(_types4.LINE_EVENTS.REGISTERED, _registerFixtures.mockPostResponse);
|
|
113
|
-
case 8:
|
|
114
|
-
case "end":
|
|
115
|
-
return _context.stop();
|
|
116
|
-
}
|
|
117
|
-
}, _callee);
|
|
118
|
-
})));
|
|
119
|
-
it('verify failure registration', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
120
|
-
var error;
|
|
121
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
122
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
123
|
-
case 0:
|
|
124
|
-
webex.request.mockRejectedValue({
|
|
125
|
-
body: _registerFixtures.mockPostResponse,
|
|
126
|
-
statusCode: 401
|
|
127
|
-
});
|
|
128
|
-
_context2.next = 3;
|
|
129
|
-
return reg.triggerRegistration();
|
|
130
|
-
case 3:
|
|
131
|
-
expect(webex.request).toBeCalledOnceWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
|
|
132
|
-
method: 'POST'
|
|
133
|
-
}));
|
|
134
|
-
error = (0, _LineError.createLineError)('User is unauthorized due to an expired token. Sign out, then sign back in.', {}, _types3.ERROR_TYPE.TOKEN_ERROR, _types4.LineStatus.INACTIVE);
|
|
135
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
|
|
136
|
-
expect(lineEmitter).toBeCalledTimes(2);
|
|
137
|
-
expect(lineEmitter).nthCalledWith(1, _types4.LINE_EVENTS.CONNECTING);
|
|
138
|
-
expect(lineEmitter).nthCalledWith(2, _types4.LINE_EVENTS.ERROR, undefined, error);
|
|
139
|
-
case 9:
|
|
140
|
-
case "end":
|
|
141
|
-
return _context2.stop();
|
|
142
|
-
}
|
|
143
|
-
}, _callee2);
|
|
144
|
-
})));
|
|
145
|
-
it('verify failure registration 403-101', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
146
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
147
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
148
|
-
case 0:
|
|
149
|
-
webex.request.mockRejectedValueOnce({
|
|
150
|
-
body: {
|
|
151
|
-
userId: _registerFixtures.mockPostResponse.userId,
|
|
152
|
-
errorCode: 101,
|
|
153
|
-
devices: [_registerFixtures.mockPostResponse.device]
|
|
154
|
-
},
|
|
155
|
-
statusCode: 403
|
|
156
|
-
}).mockResolvedValueOnce({
|
|
157
|
-
statusCode: 200,
|
|
158
|
-
body: _registerFixtures.mockPostResponse
|
|
159
|
-
});
|
|
160
|
-
global.fetch = jest.fn(function () {
|
|
161
|
-
return _promise.default.resolve({
|
|
162
|
-
json: function json() {
|
|
163
|
-
return _registerFixtures.mockDeleteResponse;
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
});
|
|
167
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
|
|
168
|
-
_context3.next = 5;
|
|
169
|
-
return reg.triggerRegistration();
|
|
170
|
-
case 5:
|
|
171
|
-
expect(webex.request).toBeCalledTimes(2);
|
|
172
|
-
expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
|
|
173
|
-
method: 'POST'
|
|
174
|
-
}));
|
|
175
|
-
expect(global.fetch).toBeCalledOnceWith(_registerFixtures.mockPostResponse.device.uri, {
|
|
176
|
-
method: 'DELETE',
|
|
177
|
-
headers: expect.anything()
|
|
178
|
-
});
|
|
179
|
-
expect(warnSpy).toBeCalledWith('User device limit exceeded', expect.anything());
|
|
180
|
-
expect(logSpy).toBeCalledWith('Registration restoration in progress.', expect.anything());
|
|
181
|
-
expect(logSpy).toBeCalledWith('Registration restored successfully.', expect.anything());
|
|
182
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
|
|
183
|
-
expect(lineEmitter).toBeCalledTimes(4);
|
|
184
|
-
expect(lineEmitter).nthCalledWith(1, _types4.LINE_EVENTS.CONNECTING);
|
|
185
|
-
expect(lineEmitter).nthCalledWith(2, _types4.LINE_EVENTS.UNREGISTERED);
|
|
186
|
-
expect(lineEmitter).nthCalledWith(3, _types4.LINE_EVENTS.CONNECTING);
|
|
187
|
-
expect(lineEmitter).nthCalledWith(4, _types4.LINE_EVENTS.REGISTERED, _registerFixtures.mockPostResponse);
|
|
188
|
-
case 17:
|
|
189
|
-
case "end":
|
|
190
|
-
return _context3.stop();
|
|
191
|
-
}
|
|
192
|
-
}, _callee3);
|
|
193
|
-
})));
|
|
194
|
-
describe('Registration failover tests', function () {
|
|
195
|
-
it('verify unreachable primary with reachable backup servers', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
196
|
-
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
197
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
198
|
-
case 0:
|
|
199
|
-
jest.useFakeTimers();
|
|
200
|
-
// try the primary twice and register successfully with backup servers
|
|
201
|
-
webex.request.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValueOnce(successPayload);
|
|
202
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
|
|
203
|
-
_context4.next = 5;
|
|
204
|
-
return reg.triggerRegistration();
|
|
205
|
-
case 5:
|
|
206
|
-
jest.advanceTimersByTime(_constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC * _constants.SEC_TO_MSEC_MFACTOR);
|
|
207
|
-
_context4.next = 8;
|
|
208
|
-
return flushPromises();
|
|
209
|
-
case 8:
|
|
210
|
-
expect(webex.request).toBeCalledTimes(3);
|
|
211
|
-
expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
|
|
212
|
-
method: 'POST',
|
|
213
|
-
uri: "".concat(mobiusUris.primary[0], "device")
|
|
214
|
-
}));
|
|
215
|
-
expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
|
|
216
|
-
method: 'POST',
|
|
217
|
-
uri: "".concat(mobiusUris.backup[0], "device")
|
|
218
|
-
}));
|
|
219
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
|
|
220
|
-
/* Active Url must match with the backup url as per the test */
|
|
221
|
-
expect(reg.getActiveMobiusUrl()).toEqual(mobiusUris.backup[0]);
|
|
222
|
-
case 13:
|
|
223
|
-
case "end":
|
|
224
|
-
return _context4.stop();
|
|
225
|
-
}
|
|
226
|
-
}, _callee4);
|
|
227
|
-
})));
|
|
228
|
-
it('verify unreachable primary and backup servers', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
229
|
-
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
230
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
231
|
-
case 0:
|
|
232
|
-
jest.useFakeTimers();
|
|
233
|
-
// try the primary twice and register successfully with backup servers
|
|
234
|
-
webex.request.mockRejectedValue(failurePayload);
|
|
235
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
|
|
236
|
-
_context5.next = 5;
|
|
237
|
-
return reg.triggerRegistration();
|
|
238
|
-
case 5:
|
|
239
|
-
jest.advanceTimersByTime(_constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC * _constants.SEC_TO_MSEC_MFACTOR);
|
|
240
|
-
_context5.next = 8;
|
|
241
|
-
return flushPromises();
|
|
242
|
-
case 8:
|
|
243
|
-
jest.advanceTimersByTime(_constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC * _constants.SEC_TO_MSEC_MFACTOR);
|
|
244
|
-
_context5.next = 11;
|
|
245
|
-
return flushPromises();
|
|
246
|
-
case 11:
|
|
247
|
-
/*
|
|
248
|
-
* 2 calls for primary -> initial and after timer expiry.
|
|
249
|
-
* 2 calls for each backup entry -> 2 * 2 = 4.
|
|
250
|
-
* So a total of 6 calls to webex.request and handleErrors
|
|
251
|
-
*/
|
|
252
|
-
expect(webex.request).toBeCalledTimes(6);
|
|
253
|
-
expect(handleErrorSpy).toBeCalledTimes(6);
|
|
254
|
-
expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
|
|
255
|
-
method: 'POST',
|
|
256
|
-
uri: "".concat(mobiusUris.primary[0], "device")
|
|
257
|
-
}));
|
|
258
|
-
expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
|
|
259
|
-
method: 'POST',
|
|
260
|
-
uri: "".concat(mobiusUris.backup[0], "device")
|
|
261
|
-
}));
|
|
262
|
-
expect(webex.request).toBeCalledWith(_objectSpread(_objectSpread({}, mockResponse), {}, {
|
|
263
|
-
method: 'POST',
|
|
264
|
-
uri: "".concat(mobiusUris.backup[1], "device")
|
|
265
|
-
}));
|
|
266
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
|
|
267
|
-
case 17:
|
|
268
|
-
case "end":
|
|
269
|
-
return _context5.stop();
|
|
270
|
-
}
|
|
271
|
-
}, _callee5);
|
|
272
|
-
})));
|
|
273
|
-
});
|
|
274
|
-
describe('Registration failback tests', function () {
|
|
275
|
-
beforeEach( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
276
|
-
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
277
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
278
|
-
case 0:
|
|
279
|
-
/* keep keepalive as active so that it wont interfere with the failback tests */
|
|
280
|
-
jest.spyOn(reg, 'postKeepAlive').mockResolvedValue(successPayload);
|
|
281
|
-
jest.useFakeTimers();
|
|
282
|
-
postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValueOnce(successPayload);
|
|
283
|
-
_context6.next = 5;
|
|
284
|
-
return reg.triggerRegistration();
|
|
285
|
-
case 5:
|
|
286
|
-
jest.advanceTimersByTime(_constants.REG_TRY_BACKUP_TIMER_VAL_IN_SEC * _constants.SEC_TO_MSEC_MFACTOR);
|
|
287
|
-
_context6.next = 8;
|
|
288
|
-
return flushPromises();
|
|
289
|
-
case 8:
|
|
290
|
-
reg.rehomingIntervalMin = _constants.DEFAULT_REHOMING_INTERVAL_MIN;
|
|
291
|
-
reg.rehomingIntervalMax = _constants.DEFAULT_REHOMING_INTERVAL_MAX;
|
|
292
|
-
|
|
293
|
-
/* These 2 calls to handleErrorSpy are for primary after which it fails over to backup */
|
|
294
|
-
expect(handleErrorSpy).toBeCalledTimes(2);
|
|
295
|
-
|
|
296
|
-
/* Active Url must match with the backup url as per the test */
|
|
297
|
-
expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);
|
|
298
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
|
|
299
|
-
case 13:
|
|
300
|
-
case "end":
|
|
301
|
-
return _context6.stop();
|
|
302
|
-
}
|
|
303
|
-
}, _callee6);
|
|
304
|
-
})));
|
|
305
|
-
afterEach(function () {
|
|
306
|
-
jest.clearAllTimers();
|
|
307
|
-
jest.clearAllMocks();
|
|
308
|
-
});
|
|
309
|
-
it('verify 429 error with failback to primary after initial registration with backup: Restore failure', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
310
|
-
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
311
|
-
while (1) switch (_context7.prev = _context7.next) {
|
|
312
|
-
case 0:
|
|
313
|
-
// delete should be successful
|
|
314
|
-
global.fetch = jest.fn(function () {
|
|
315
|
-
return _promise.default.resolve({
|
|
316
|
-
json: function json() {
|
|
317
|
-
return _registerFixtures.mockDeleteResponse;
|
|
318
|
-
}
|
|
319
|
-
});
|
|
320
|
-
});
|
|
321
|
-
postRegistrationSpy.mockRejectedValue(failurePayload429);
|
|
322
|
-
|
|
323
|
-
/* Wait for failback to be triggered. */
|
|
324
|
-
jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
|
|
325
|
-
_context7.next = 5;
|
|
326
|
-
return flushPromises();
|
|
327
|
-
case 5:
|
|
328
|
-
expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
|
|
329
|
-
method: 'executeFailback',
|
|
330
|
-
file: _constants.REGISTRATION_FILE
|
|
331
|
-
});
|
|
332
|
-
expect(failbackRetry429Spy).toBeCalledOnceWith();
|
|
333
|
-
expect(reg.failback429RetryAttempts).toBe(0);
|
|
334
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
|
|
335
|
-
expect(restoreSpy).toBeCalledOnceWith(_constants.FAILBACK_429_RETRY_UTIL);
|
|
336
|
-
expect(restartSpy).toBeCalledOnceWith(_constants.FAILBACK_429_RETRY_UTIL);
|
|
337
|
-
expect(reg.failbackTimer).toBe(undefined);
|
|
338
|
-
expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
|
|
339
|
-
expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
|
|
340
|
-
case 14:
|
|
341
|
-
case "end":
|
|
342
|
-
return _context7.stop();
|
|
343
|
-
}
|
|
344
|
-
}, _callee7);
|
|
345
|
-
})));
|
|
346
|
-
it('verify unsuccessful failback to primary after initial registration with backup: Restore failure', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
347
|
-
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
348
|
-
while (1) switch (_context8.prev = _context8.next) {
|
|
349
|
-
case 0:
|
|
350
|
-
postRegistrationSpy.mockRejectedValue(failurePayload);
|
|
351
|
-
|
|
352
|
-
/* Wait for failback to be triggered. */
|
|
353
|
-
jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
|
|
354
|
-
_context8.next = 4;
|
|
355
|
-
return flushPromises();
|
|
356
|
-
case 4:
|
|
357
|
-
expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
|
|
358
|
-
method: 'executeFailback',
|
|
359
|
-
file: _constants.REGISTRATION_FILE
|
|
360
|
-
});
|
|
361
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
|
|
362
|
-
expect(restoreSpy).toBeCalledOnceWith(_constants.FAILBACK_UTIL);
|
|
363
|
-
expect(restartSpy).toBeCalledOnceWith(_constants.FAILBACK_UTIL);
|
|
364
|
-
expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
|
|
365
|
-
expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
|
|
366
|
-
case 10:
|
|
367
|
-
case "end":
|
|
368
|
-
return _context8.stop();
|
|
369
|
-
}
|
|
370
|
-
}, _callee8);
|
|
371
|
-
})));
|
|
372
|
-
it('verify unsuccessful failback to primary after initial registration with backup: Restore failure with final error', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
|
|
373
|
-
var finalErrorPayload;
|
|
374
|
-
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
375
|
-
while (1) switch (_context9.prev = _context9.next) {
|
|
376
|
-
case 0:
|
|
377
|
-
finalErrorPayload = {
|
|
378
|
-
statusCode: 401,
|
|
379
|
-
body: _registerFixtures.mockPostResponse
|
|
380
|
-
};
|
|
381
|
-
postRegistrationSpy.mockClear();
|
|
382
|
-
postRegistrationSpy.mockRejectedValue(finalErrorPayload).mockRejectedValueOnce(failurePayload);
|
|
383
|
-
/* Wait for failback to be triggered. */
|
|
384
|
-
jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
|
|
385
|
-
_context9.next = 6;
|
|
386
|
-
return flushPromises();
|
|
387
|
-
case 6:
|
|
388
|
-
expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
|
|
389
|
-
method: 'executeFailback',
|
|
390
|
-
file: _constants.REGISTRATION_FILE
|
|
391
|
-
});
|
|
392
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
|
|
393
|
-
expect(restoreSpy).toBeCalledOnceWith(_constants.FAILBACK_UTIL);
|
|
394
|
-
expect(restartSpy).not.toBeCalled();
|
|
395
|
-
expect(reg.failbackTimer).toBe(undefined);
|
|
396
|
-
expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
|
|
397
|
-
expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
|
|
398
|
-
case 13:
|
|
399
|
-
case "end":
|
|
400
|
-
return _context9.stop();
|
|
401
|
-
}
|
|
402
|
-
}, _callee9);
|
|
403
|
-
})));
|
|
404
|
-
it('verify unsuccessful failback to primary after initial registration with backup: Restore success', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10() {
|
|
405
|
-
return _regenerator.default.wrap(function _callee10$(_context10) {
|
|
406
|
-
while (1) switch (_context10.prev = _context10.next) {
|
|
407
|
-
case 0:
|
|
408
|
-
postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
|
|
409
|
-
|
|
410
|
-
/* Wait for failback to be triggered. */
|
|
411
|
-
jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
|
|
412
|
-
_context10.next = 4;
|
|
413
|
-
return flushPromises();
|
|
414
|
-
case 4:
|
|
415
|
-
expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
|
|
416
|
-
method: 'executeFailback',
|
|
417
|
-
file: _constants.REGISTRATION_FILE
|
|
418
|
-
});
|
|
419
|
-
/* Active Url should still match backup url */
|
|
420
|
-
expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);
|
|
421
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
|
|
422
|
-
expect(restoreSpy).toBeCalledOnceWith(_constants.FAILBACK_UTIL);
|
|
423
|
-
expect(restartSpy).not.toBeCalled();
|
|
424
|
-
expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
|
|
425
|
-
expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
|
|
426
|
-
case 11:
|
|
427
|
-
case "end":
|
|
428
|
-
return _context10.stop();
|
|
429
|
-
}
|
|
430
|
-
}, _callee10);
|
|
431
|
-
})));
|
|
432
|
-
it('verify successful failback to primary after initial registration with backup', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11() {
|
|
433
|
-
return _regenerator.default.wrap(function _callee11$(_context11) {
|
|
434
|
-
while (1) switch (_context11.prev = _context11.next) {
|
|
435
|
-
case 0:
|
|
436
|
-
postRegistrationSpy.mockResolvedValue(successPayload);
|
|
437
|
-
|
|
438
|
-
/* Wait for failback to be triggered. */
|
|
439
|
-
jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
|
|
440
|
-
_context11.next = 4;
|
|
441
|
-
return flushPromises();
|
|
442
|
-
case 4:
|
|
443
|
-
expect(logSpy).toBeCalledWith("Attempting failback to primary.", {
|
|
444
|
-
method: 'executeFailback',
|
|
445
|
-
file: _constants.REGISTRATION_FILE
|
|
446
|
-
});
|
|
447
|
-
|
|
448
|
-
/* Active Url must now match with the primary url */
|
|
449
|
-
expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.primary[0]);
|
|
450
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
|
|
451
|
-
expect(reg.failbackTimer).toBe(undefined);
|
|
452
|
-
expect(restoreSpy).not.toBeCalled();
|
|
453
|
-
expect(reg.rehomingIntervalMin).toBe(_registerFixtures.mockPostResponse.rehomingIntervalMin);
|
|
454
|
-
expect(reg.rehomingIntervalMax).toBe(_registerFixtures.mockPostResponse.rehomingIntervalMax);
|
|
455
|
-
case 11:
|
|
456
|
-
case "end":
|
|
457
|
-
return _context11.stop();
|
|
458
|
-
}
|
|
459
|
-
}, _callee11);
|
|
460
|
-
})));
|
|
461
|
-
it('verify unsuccessful failback attempt due to active call', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12() {
|
|
462
|
-
return _regenerator.default.wrap(function _callee12$(_context12) {
|
|
463
|
-
while (1) switch (_context12.prev = _context12.next) {
|
|
464
|
-
case 0:
|
|
465
|
-
/** create a new call */
|
|
466
|
-
reg.callManager.createCall();
|
|
467
|
-
expect((0, _keys.default)(reg.callManager.getActiveCalls()).length).toBe(1);
|
|
468
|
-
postRegistrationSpy.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
|
|
469
|
-
|
|
470
|
-
/* Wait for failback to be triggered. */
|
|
471
|
-
jest.advanceTimersByTime(reg.rehomingIntervalMax * _constants.MINUTES_TO_SEC_MFACTOR * _constants.SEC_TO_MSEC_MFACTOR);
|
|
472
|
-
_context12.next = 6;
|
|
473
|
-
return flushPromises();
|
|
474
|
-
case 6:
|
|
475
|
-
expect(logSpy).toBeCalledWith("Active calls present, deferring failback to next cycle.", {
|
|
476
|
-
method: 'executeFailback',
|
|
477
|
-
file: _constants.REGISTRATION_FILE
|
|
478
|
-
});
|
|
479
|
-
|
|
480
|
-
/* Active Url should still match backup url */
|
|
481
|
-
expect(reg.getActiveMobiusUrl()).toStrictEqual(mobiusUris.backup[0]);
|
|
482
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
|
|
483
|
-
expect(restoreSpy).not.toBeCalled();
|
|
484
|
-
expect(restartSpy).not.toBeCalled();
|
|
485
|
-
expect(logSpy).toBeCalledWith('Active calls present, deferring failback to next cycle.', {
|
|
486
|
-
file: _constants.REGISTRATION_FILE,
|
|
487
|
-
method: _constants.FAILBACK_UTIL
|
|
488
|
-
});
|
|
489
|
-
expect(reg.rehomingIntervalMin).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MIN);
|
|
490
|
-
expect(reg.rehomingIntervalMax).toBe(_constants.DEFAULT_REHOMING_INTERVAL_MAX);
|
|
491
|
-
case 14:
|
|
492
|
-
case "end":
|
|
493
|
-
return _context12.stop();
|
|
494
|
-
}
|
|
495
|
-
}, _callee12);
|
|
496
|
-
})));
|
|
497
|
-
});
|
|
498
|
-
|
|
499
|
-
// Keep-alive related test cases
|
|
500
|
-
describe('Keep-alive Tests', function () {
|
|
501
|
-
var logObj = {
|
|
502
|
-
file: _constants.REGISTRATION_FILE,
|
|
503
|
-
method: 'startKeepaliveTimer'
|
|
504
|
-
};
|
|
505
|
-
var mockKeepAliveBody = {
|
|
506
|
-
device: _registerFixtures.mockPostResponse.device
|
|
507
|
-
};
|
|
508
|
-
beforeEach( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13() {
|
|
509
|
-
return _regenerator.default.wrap(function _callee13$(_context13) {
|
|
510
|
-
while (1) switch (_context13.prev = _context13.next) {
|
|
511
|
-
case 0:
|
|
512
|
-
postRegistrationSpy.mockResolvedValueOnce(successPayload);
|
|
513
|
-
jest.useFakeTimers();
|
|
514
|
-
_context13.next = 4;
|
|
515
|
-
return reg.triggerRegistration();
|
|
516
|
-
case 4:
|
|
517
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
|
|
518
|
-
case 5:
|
|
519
|
-
case "end":
|
|
520
|
-
return _context13.stop();
|
|
521
|
-
}
|
|
522
|
-
}, _callee13);
|
|
523
|
-
})));
|
|
524
|
-
afterEach(function () {
|
|
525
|
-
jest.clearAllTimers();
|
|
526
|
-
jest.clearAllMocks();
|
|
527
|
-
if (reg.keepaliveTimer) {
|
|
528
|
-
clearInterval(reg.keepaliveTimer);
|
|
529
|
-
reg.keepaliveTimer = undefined;
|
|
530
|
-
}
|
|
531
|
-
reg.reconnectPending = false;
|
|
532
|
-
var calls = (0, _values.default)(reg.callManager.getActiveCalls());
|
|
533
|
-
calls.forEach(function (call) {
|
|
534
|
-
call.end();
|
|
535
|
-
});
|
|
536
|
-
});
|
|
537
|
-
it('verify successful keep-alive cases', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14() {
|
|
538
|
-
var keepAlivePayload, funcSpy;
|
|
539
|
-
return _regenerator.default.wrap(function _callee14$(_context14) {
|
|
540
|
-
while (1) switch (_context14.prev = _context14.next) {
|
|
541
|
-
case 0:
|
|
542
|
-
keepAlivePayload = {
|
|
543
|
-
statusCode: 200,
|
|
544
|
-
body: mockKeepAliveBody
|
|
545
|
-
};
|
|
546
|
-
webex.request.mockReturnValue(keepAlivePayload);
|
|
547
|
-
funcSpy = jest.spyOn(reg, 'postKeepAlive');
|
|
548
|
-
jest.advanceTimersByTime(2 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
|
|
549
|
-
_context14.next = 6;
|
|
550
|
-
return flushPromises();
|
|
551
|
-
case 6:
|
|
552
|
-
expect(funcSpy).toBeCalledTimes(2); // should be called 2 times: first try and after the interval.
|
|
553
|
-
expect(logSpy).lastCalledWith('Sent Keepalive, status: 200', logObj);
|
|
554
|
-
case 8:
|
|
555
|
-
case "end":
|
|
556
|
-
return _context14.stop();
|
|
557
|
-
}
|
|
558
|
-
}, _callee14);
|
|
559
|
-
})));
|
|
560
|
-
it('verify failure keep-alive cases: Retry Success', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee15() {
|
|
561
|
-
var failurePayload, successPayload, timer;
|
|
562
|
-
return _regenerator.default.wrap(function _callee15$(_context15) {
|
|
563
|
-
while (1) switch (_context15.prev = _context15.next) {
|
|
564
|
-
case 0:
|
|
565
|
-
failurePayload = {
|
|
566
|
-
statusCode: 503,
|
|
567
|
-
body: mockKeepAliveBody
|
|
568
|
-
};
|
|
569
|
-
successPayload = {
|
|
570
|
-
statusCode: 200,
|
|
571
|
-
body: mockKeepAliveBody
|
|
572
|
-
};
|
|
573
|
-
timer = reg.keepaliveTimer;
|
|
574
|
-
lineEmitter.mockClear();
|
|
575
|
-
webex.request.mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
|
|
576
|
-
jest.advanceTimersByTime(2 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
|
|
577
|
-
_context15.next = 8;
|
|
578
|
-
return flushPromises();
|
|
579
|
-
case 8:
|
|
580
|
-
expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {
|
|
581
|
-
method: 'startKeepaliveTimer',
|
|
582
|
-
file: _constants.REGISTRATION_FILE
|
|
583
|
-
});
|
|
584
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
|
|
585
|
-
expect(reg.keepaliveTimer).toBe(timer);
|
|
586
|
-
expect(lineEmitter).nthCalledWith(1, _types4.LINE_EVENTS.RECONNECTING);
|
|
587
|
-
expect(lineEmitter).nthCalledWith(2, _types4.LINE_EVENTS.RECONNECTED);
|
|
588
|
-
expect(lineEmitter).toBeCalledTimes(2);
|
|
589
|
-
case 14:
|
|
590
|
-
case "end":
|
|
591
|
-
return _context15.stop();
|
|
592
|
-
}
|
|
593
|
-
}, _callee15);
|
|
594
|
-
})));
|
|
595
|
-
it('verify failure keep-alive cases: Restore failure', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee16() {
|
|
596
|
-
var restoreSpy, restartRegSpy, reconnectSpy, failurePayload, clearIntervalSpy, timer;
|
|
597
|
-
return _regenerator.default.wrap(function _callee16$(_context16) {
|
|
598
|
-
while (1) switch (_context16.prev = _context16.next) {
|
|
599
|
-
case 0:
|
|
600
|
-
restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
|
|
601
|
-
restartRegSpy = jest.spyOn(reg, 'restartRegistration');
|
|
602
|
-
reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');
|
|
603
|
-
failurePayload = {
|
|
604
|
-
statusCode: 503,
|
|
605
|
-
body: mockKeepAliveBody
|
|
606
|
-
};
|
|
607
|
-
clearIntervalSpy = jest.spyOn(global, 'clearInterval');
|
|
608
|
-
lineEmitter.mockClear();
|
|
609
|
-
webex.request.mockRejectedValue(failurePayload);
|
|
610
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
|
|
611
|
-
timer = reg.keepaliveTimer;
|
|
612
|
-
jest.advanceTimersByTime(5 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
|
|
613
|
-
_context16.next = 12;
|
|
614
|
-
return flushPromises();
|
|
615
|
-
case 12:
|
|
616
|
-
expect(clearIntervalSpy).toBeCalledOnceWith(timer);
|
|
617
|
-
|
|
618
|
-
// sendKeepAlive tries to retry 5 times before accepting failure
|
|
619
|
-
// later 2 attempts to register with primary server
|
|
620
|
-
expect(handleErrorSpy).toBeCalledTimes(7);
|
|
621
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.DEFAULT);
|
|
622
|
-
expect(reg.reconnectPending).toStrictEqual(false);
|
|
623
|
-
expect(reconnectSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
|
|
624
|
-
expect(restoreSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
|
|
625
|
-
expect(restartRegSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
|
|
626
|
-
expect(webex.request).toBeCalledTimes(7);
|
|
627
|
-
expect(reg.keepaliveTimer).toBe(undefined);
|
|
628
|
-
expect(lineEmitter).nthCalledWith(1, _types4.LINE_EVENTS.RECONNECTING);
|
|
629
|
-
expect(lineEmitter).nthCalledWith(4, _types4.LINE_EVENTS.RECONNECTING);
|
|
630
|
-
expect(lineEmitter).nthCalledWith(5, _types4.LINE_EVENTS.UNREGISTERED);
|
|
631
|
-
|
|
632
|
-
/** there will be 2 registration attempts */
|
|
633
|
-
expect(lineEmitter).nthCalledWith(6, _types4.LINE_EVENTS.CONNECTING);
|
|
634
|
-
expect(lineEmitter).nthCalledWith(7, _types4.LINE_EVENTS.UNREGISTERED);
|
|
635
|
-
expect(lineEmitter).nthCalledWith(8, _types4.LINE_EVENTS.CONNECTING);
|
|
636
|
-
expect(lineEmitter).nthCalledWith(9, _types4.LINE_EVENTS.UNREGISTERED);
|
|
637
|
-
expect(lineEmitter).toBeCalledTimes(9);
|
|
638
|
-
case 29:
|
|
639
|
-
case "end":
|
|
640
|
-
return _context16.stop();
|
|
641
|
-
}
|
|
642
|
-
}, _callee16);
|
|
643
|
-
})));
|
|
644
|
-
it('verify failure keep-alive cases: Restore Success', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee17() {
|
|
645
|
-
var restoreSpy, restartRegSpy, reconnectSpy, failurePayload, successPayload, clearIntervalSpy, url, timer;
|
|
646
|
-
return _regenerator.default.wrap(function _callee17$(_context17) {
|
|
647
|
-
while (1) switch (_context17.prev = _context17.next) {
|
|
648
|
-
case 0:
|
|
649
|
-
restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
|
|
650
|
-
restartRegSpy = jest.spyOn(reg, 'restartRegistration');
|
|
651
|
-
reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');
|
|
652
|
-
failurePayload = {
|
|
653
|
-
statusCode: 503,
|
|
654
|
-
body: mockKeepAliveBody
|
|
655
|
-
};
|
|
656
|
-
successPayload = {
|
|
657
|
-
statusCode: 200,
|
|
658
|
-
body: mockKeepAliveBody
|
|
659
|
-
};
|
|
660
|
-
clearIntervalSpy = jest.spyOn(global, 'clearInterval');
|
|
661
|
-
webex.request.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
|
|
662
|
-
|
|
663
|
-
/* successful registration */
|
|
664
|
-
// webex.request.mockResolvedValue(successPayload);
|
|
665
|
-
|
|
666
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
|
|
667
|
-
url = 'https://mobius.asydm-m-1.prod.infra.webex.com/api/v1';
|
|
668
|
-
/* set active Url and expect the registration to restore to this url */
|
|
669
|
-
reg.setActiveMobiusUrl(url);
|
|
670
|
-
timer = reg.keepaliveTimer;
|
|
671
|
-
jest.advanceTimersByTime(5 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
|
|
672
|
-
_context17.next = 14;
|
|
673
|
-
return flushPromises();
|
|
674
|
-
case 14:
|
|
675
|
-
expect(clearIntervalSpy).toBeCalledOnceWith(timer);
|
|
676
|
-
expect(handleErrorSpy).toBeCalledTimes(5);
|
|
677
|
-
expect(reg.getStatus()).toEqual(_types.MobiusStatus.ACTIVE);
|
|
678
|
-
expect(reconnectSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
|
|
679
|
-
expect(restoreSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
|
|
680
|
-
expect(restartRegSpy).not.toBeCalled();
|
|
681
|
-
expect(reg.getActiveMobiusUrl()).toStrictEqual(url);
|
|
682
|
-
expect(reg.reconnectPending).toStrictEqual(false);
|
|
683
|
-
expect(reg.keepaliveTimer).toBeTruthy();
|
|
684
|
-
expect(reg.keepaliveTimer).not.toBe(timer);
|
|
685
|
-
case 24:
|
|
686
|
-
case "end":
|
|
687
|
-
return _context17.stop();
|
|
688
|
-
}
|
|
689
|
-
}, _callee17);
|
|
690
|
-
})));
|
|
691
|
-
it('verify failure followed by recovery of keepalive', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee18() {
|
|
692
|
-
var failurePayload, successPayload, clearIntervalSpy, timer;
|
|
693
|
-
return _regenerator.default.wrap(function _callee18$(_context18) {
|
|
694
|
-
while (1) switch (_context18.prev = _context18.next) {
|
|
695
|
-
case 0:
|
|
696
|
-
failurePayload = {
|
|
697
|
-
statusCode: 503,
|
|
698
|
-
body: mockKeepAliveBody
|
|
699
|
-
};
|
|
700
|
-
successPayload = {
|
|
701
|
-
statusCode: 200,
|
|
702
|
-
body: mockKeepAliveBody
|
|
703
|
-
};
|
|
704
|
-
clearIntervalSpy = jest.spyOn(global, 'clearInterval');
|
|
705
|
-
webex.request.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
|
|
706
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
|
|
707
|
-
timer = reg.keepaliveTimer; // sendKeepAlive tries to retry 3 times and receiving success on third time
|
|
708
|
-
jest.advanceTimersByTime(3 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
|
|
709
|
-
_context18.next = 9;
|
|
710
|
-
return flushPromises();
|
|
711
|
-
case 9:
|
|
712
|
-
expect(webex.request).toBeCalledTimes(3);
|
|
713
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
|
|
714
|
-
expect(handleErrorSpy).toBeCalledTimes(2);
|
|
715
|
-
expect(clearIntervalSpy).not.toBeCalled();
|
|
716
|
-
expect(reg.keepaliveTimer).toBe(timer);
|
|
717
|
-
case 14:
|
|
718
|
-
case "end":
|
|
719
|
-
return _context18.stop();
|
|
720
|
-
}
|
|
721
|
-
}, _callee18);
|
|
722
|
-
})));
|
|
723
|
-
it('verify final error for keep-alive', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee19() {
|
|
724
|
-
var restoreSpy, restartRegSpy, reconnectSpy, failurePayload, clearIntervalSpy;
|
|
725
|
-
return _regenerator.default.wrap(function _callee19$(_context19) {
|
|
726
|
-
while (1) switch (_context19.prev = _context19.next) {
|
|
727
|
-
case 0:
|
|
728
|
-
restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
|
|
729
|
-
restartRegSpy = jest.spyOn(reg, 'restartRegistration');
|
|
730
|
-
reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');
|
|
731
|
-
failurePayload = {
|
|
732
|
-
statusCode: 404,
|
|
733
|
-
body: mockKeepAliveBody
|
|
734
|
-
};
|
|
735
|
-
clearIntervalSpy = jest.spyOn(global, 'clearInterval');
|
|
736
|
-
webex.request.mockRejectedValue(failurePayload);
|
|
737
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
|
|
738
|
-
|
|
739
|
-
/* send one keepalive */
|
|
740
|
-
jest.advanceTimersByTime(_registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
|
|
741
|
-
_context19.next = 10;
|
|
742
|
-
return flushPromises();
|
|
743
|
-
case 10:
|
|
744
|
-
expect(clearIntervalSpy).toBeCalledTimes(1);
|
|
745
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
|
|
746
|
-
expect(reconnectSpy).not.toBeCalled();
|
|
747
|
-
expect(restoreSpy).not.toBeCalled();
|
|
748
|
-
expect(restartRegSpy).not.toBeCalled();
|
|
749
|
-
expect(reg.reconnectPending).toStrictEqual(false);
|
|
750
|
-
expect(webex.request).toBeCalledOnceWith({
|
|
751
|
-
headers: mockResponse.headers,
|
|
752
|
-
uri: "".concat(mockKeepAliveBody.device.uri, "/status"),
|
|
753
|
-
method: 'POST',
|
|
754
|
-
service: mockResponse.service
|
|
755
|
-
});
|
|
756
|
-
expect(reg.keepaliveTimer).toBe(undefined);
|
|
757
|
-
expect(handleErrorSpy).toBeCalledOnceWith(failurePayload, expect.anything(), {
|
|
758
|
-
file: _constants.REGISTRATION_FILE,
|
|
759
|
-
method: _constants.KEEPALIVE_UTIL
|
|
760
|
-
});
|
|
761
|
-
case 19:
|
|
762
|
-
case "end":
|
|
763
|
-
return _context19.stop();
|
|
764
|
-
}
|
|
765
|
-
}, _callee19);
|
|
766
|
-
})));
|
|
767
|
-
it('verify failure keep-alive case with active call present: Restore Success after call ends', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee20() {
|
|
768
|
-
var restoreSpy, restartRegSpy, reconnectSpy, failurePayload, successPayload, clearIntervalSpy, url, timer, call;
|
|
769
|
-
return _regenerator.default.wrap(function _callee20$(_context20) {
|
|
770
|
-
while (1) switch (_context20.prev = _context20.next) {
|
|
771
|
-
case 0:
|
|
772
|
-
restoreSpy = jest.spyOn(reg, 'restorePreviousRegistration');
|
|
773
|
-
restartRegSpy = jest.spyOn(reg, 'restartRegistration');
|
|
774
|
-
reconnectSpy = jest.spyOn(reg, 'reconnectOnFailure');
|
|
775
|
-
failurePayload = {
|
|
776
|
-
statusCode: 503,
|
|
777
|
-
body: mockKeepAliveBody
|
|
778
|
-
};
|
|
779
|
-
successPayload = {
|
|
780
|
-
statusCode: 200,
|
|
781
|
-
body: mockKeepAliveBody
|
|
782
|
-
};
|
|
783
|
-
clearIntervalSpy = jest.spyOn(global, 'clearInterval');
|
|
784
|
-
webex.request.mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockRejectedValueOnce(failurePayload).mockResolvedValue(successPayload);
|
|
785
|
-
|
|
786
|
-
// jest.spyOn(callingClient['registration'], 'createDevice').mockResolvedValue(successPayload);
|
|
787
|
-
url = 'https://mobius.asydm-m-1.prod.infra.webex.com/api/v1';
|
|
788
|
-
reg.setActiveMobiusUrl(url);
|
|
789
|
-
expect(reg.reconnectPending).toStrictEqual(false);
|
|
790
|
-
timer = reg.keepaliveTimer;
|
|
791
|
-
/* add a call to the callManager */
|
|
792
|
-
call = reg.callManager.createCall();
|
|
793
|
-
expect((0, _keys.default)(reg.callManager.getActiveCalls()).length).toBe(1);
|
|
794
|
-
|
|
795
|
-
/* send one keepalive */
|
|
796
|
-
jest.advanceTimersByTime(5 * _registerFixtures.mockPostResponse.keepaliveInterval * _constants.SEC_TO_MSEC_MFACTOR);
|
|
797
|
-
_context20.next = 16;
|
|
798
|
-
return flushPromises();
|
|
799
|
-
case 16:
|
|
800
|
-
expect(clearIntervalSpy).toBeCalledOnceWith(timer);
|
|
801
|
-
expect(handleErrorSpy).toBeCalledTimes(5);
|
|
802
|
-
expect(reg.keepaliveTimer).toStrictEqual(undefined);
|
|
803
|
-
expect(reg.failbackTimer).toStrictEqual(undefined);
|
|
804
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.DEFAULT);
|
|
805
|
-
expect(lineEmitter).lastCalledWith(_types4.LINE_EVENTS.UNREGISTERED);
|
|
806
|
-
expect(reconnectSpy).toBeCalledOnceWith(_constants.KEEPALIVE_UTIL);
|
|
807
|
-
expect(restoreSpy).not.toBeCalled();
|
|
808
|
-
expect(restartRegSpy).not.toBeCalled();
|
|
809
|
-
expect(reg.reconnectPending).toStrictEqual(true);
|
|
810
|
-
expect(logSpy).toBeCalledWith('Active call(s) present, deferred reconnect till call cleanup.', {
|
|
811
|
-
file: _constants.REGISTRATION_FILE,
|
|
812
|
-
method: expect.any(String)
|
|
813
|
-
});
|
|
814
|
-
reconnectSpy.mockClear();
|
|
815
|
-
|
|
816
|
-
/* simulate call disconnect and Calling client will trigger reconnect upon receiving disconnect event from CallManager */
|
|
817
|
-
reg.callManager.callCollection = {};
|
|
818
|
-
_context20.next = 31;
|
|
819
|
-
return reg.reconnectOnFailure(_constants.CALLS_CLEARED_HANDLER_UTIL);
|
|
820
|
-
case 31:
|
|
821
|
-
expect((0, _keys.default)(reg.callManager.getActiveCalls()).length).toBe(0);
|
|
822
|
-
expect(reg.getStatus()).toBe(_types.MobiusStatus.ACTIVE);
|
|
823
|
-
expect(reconnectSpy).toBeCalledOnceWith(_constants.CALLS_CLEARED_HANDLER_UTIL);
|
|
824
|
-
expect(restoreSpy).toBeCalledOnceWith(_constants.CALLS_CLEARED_HANDLER_UTIL);
|
|
825
|
-
expect(restartRegSpy).not.toBeCalled();
|
|
826
|
-
expect(reg.reconnectPending).toStrictEqual(false);
|
|
827
|
-
expect(reg.getActiveMobiusUrl()).toStrictEqual(url);
|
|
828
|
-
expect(reg.keepaliveTimer).toBeTruthy();
|
|
829
|
-
expect(reg.keepaliveTimer).not.toBe(timer);
|
|
830
|
-
case 40:
|
|
831
|
-
case "end":
|
|
832
|
-
return _context20.stop();
|
|
833
|
-
}
|
|
834
|
-
}, _callee20);
|
|
835
|
-
})));
|
|
836
|
-
});
|
|
837
|
-
});
|
|
838
|
-
//# sourceMappingURL=register.test.js.map
|