@webex/test-helper-mock-webex 2.37.0 → 2.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +19 -31
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.js +135 -119
package/dist/index.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
5
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
6
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
7
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
8
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
3
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
4
|
-
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
5
11
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
6
|
-
|
|
7
12
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
8
|
-
|
|
9
|
-
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
10
|
-
|
|
11
13
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
12
|
-
|
|
14
|
+
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; }
|
|
15
|
+
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; }
|
|
13
16
|
/*!
|
|
14
17
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
15
18
|
*/
|
|
@@ -19,28 +22,22 @@ if (typeof _promise.default === 'undefined') {
|
|
|
19
22
|
// eslint-disable-next-line global-require
|
|
20
23
|
require('es6-promise').polyfill();
|
|
21
24
|
}
|
|
22
|
-
|
|
23
25
|
var _ = require('lodash');
|
|
24
|
-
|
|
25
26
|
var sinon = require('sinon');
|
|
26
|
-
|
|
27
27
|
var State = require('ampersand-state');
|
|
28
|
-
|
|
29
28
|
var nonInternalPlugins = ['authorization', 'credentials', 'memberships', 'messages', 'logger', 'people', 'phone', 'meetings', 'rooms', 'teams', 'teamMemberships', 'webhooks'];
|
|
29
|
+
|
|
30
30
|
/**
|
|
31
31
|
* Mock Webex constructor
|
|
32
32
|
* @param {Object} options
|
|
33
33
|
* @returns {MockWebex}
|
|
34
34
|
*/
|
|
35
|
-
|
|
36
35
|
function makeWebex(options) {
|
|
37
36
|
var requestPromise = _promise.default.resolve({
|
|
38
37
|
statusCode: 200,
|
|
39
38
|
body: {}
|
|
40
39
|
});
|
|
41
|
-
|
|
42
40
|
var uploadPromise = _promise.default.resolve({});
|
|
43
|
-
|
|
44
41
|
options = options || {};
|
|
45
42
|
options.children = options.children || {};
|
|
46
43
|
var internalOptions = {};
|
|
@@ -54,23 +51,22 @@ function makeWebex(options) {
|
|
|
54
51
|
}
|
|
55
52
|
});
|
|
56
53
|
internalOptions.children = internalChildren;
|
|
57
|
-
options.children = externalChildren;
|
|
58
|
-
// Because it turns out we're relying on ordering
|
|
54
|
+
options.children = externalChildren;
|
|
59
55
|
|
|
60
|
-
|
|
56
|
+
// This weird assignment is to make sure "internal" is the first property.
|
|
57
|
+
// Because it turns out we're relying on ordering
|
|
58
|
+
options.children = _objectSpread({
|
|
61
59
|
internal: State.extend(internalOptions)
|
|
62
60
|
}, options.children);
|
|
63
|
-
|
|
64
61
|
requestPromise.on = uploadPromise.on = function on() {
|
|
65
62
|
return requestPromise;
|
|
66
63
|
};
|
|
64
|
+
|
|
67
65
|
/**
|
|
68
66
|
* produces a mock storage object
|
|
69
67
|
* @param {Object} data
|
|
70
68
|
* @returns {Storage}
|
|
71
69
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
74
70
|
function makeMockStorage(data) {
|
|
75
71
|
data = data || {};
|
|
76
72
|
return {
|
|
@@ -85,38 +81,34 @@ function makeWebex(options) {
|
|
|
85
81
|
},
|
|
86
82
|
del: function del(namespace, key) {
|
|
87
83
|
this.data = this.data || data;
|
|
88
|
-
this.data[namespace] = this.data[namespace] || {};
|
|
89
|
-
|
|
84
|
+
this.data[namespace] = this.data[namespace] || {};
|
|
85
|
+
// eslint-disable-next-line prefer-reflect
|
|
90
86
|
delete this.data[namespace][key];
|
|
91
87
|
},
|
|
92
88
|
get: function get(namespace, key) {
|
|
93
89
|
this.data = this.data || data;
|
|
94
90
|
this.data[namespace] = this.data[namespace] || {};
|
|
95
91
|
var ret = this.data[namespace][key];
|
|
96
|
-
|
|
97
92
|
if (ret) {
|
|
98
93
|
return _promise.default.resolve(ret);
|
|
99
94
|
}
|
|
100
|
-
|
|
101
95
|
return _promise.default.reject(new Error('MockNotFoundError'));
|
|
102
96
|
},
|
|
103
97
|
put: function put(namespace, key, value) {
|
|
104
98
|
this.data = this.data || data;
|
|
105
|
-
|
|
106
99
|
try {
|
|
107
100
|
// this is the simplest way to to turn ampstate objects into bare
|
|
108
101
|
// objects without actually checking if they're ampstate objects
|
|
109
102
|
value = JSON.parse((0, _stringify.default)(value));
|
|
110
|
-
} catch (err) {
|
|
103
|
+
} catch (err) {
|
|
104
|
+
// ignore
|
|
111
105
|
}
|
|
112
|
-
|
|
113
106
|
this.data[namespace] = this.data[namespace] || {};
|
|
114
107
|
this.data[namespace][key] = value;
|
|
115
108
|
return _promise.default.resolve();
|
|
116
109
|
}
|
|
117
110
|
};
|
|
118
111
|
}
|
|
119
|
-
|
|
120
112
|
var request = sinon.stub().returns(requestPromise);
|
|
121
113
|
var upload = sinon.stub().returns(uploadPromise);
|
|
122
114
|
var MockWebex = State.extend(_.defaults(options, {
|
|
@@ -210,7 +202,6 @@ function makeWebex(options) {
|
|
|
210
202
|
}));
|
|
211
203
|
var webex = new MockWebex(options && options.attrs);
|
|
212
204
|
sinon.spy(webex, 'refresh');
|
|
213
|
-
|
|
214
205
|
_.defaults(webex, {
|
|
215
206
|
credentials: {
|
|
216
207
|
authorization: 'Basic NOTATOKEN',
|
|
@@ -234,7 +225,6 @@ function makeWebex(options) {
|
|
|
234
225
|
debug: sinon.spy()
|
|
235
226
|
}
|
|
236
227
|
});
|
|
237
|
-
|
|
238
228
|
_.defaults(webex.internal, {
|
|
239
229
|
avatar: {},
|
|
240
230
|
conversation: {},
|
|
@@ -269,9 +259,7 @@ function makeWebex(options) {
|
|
|
269
259
|
llm: {},
|
|
270
260
|
voicea: {}
|
|
271
261
|
});
|
|
272
|
-
|
|
273
262
|
return webex;
|
|
274
263
|
}
|
|
275
|
-
|
|
276
264
|
module.exports = makeWebex;
|
|
277
265
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","polyfill","_","sinon","State","nonInternalPlugins","makeWebex","options","requestPromise","resolve","statusCode","body","uploadPromise","children","internalOptions","internalChildren","externalChildren","forEach","key","indexOf","internal","extend","on","makeMockStorage","data","spy","once","listenTo","listenToAndRun","clear","namespace","del","get","ret","reject","Error","put","value","JSON","parse","err","request","stub","returns","upload","MockWebex","defaults","extraProperies","refresh","setConfig","config","credentials","idbroker","url","process","env","IDBROKER_BASE_URL","identity","IDENTITY_BASE_URL","defaultUrl","activationUrl","authorizeUrl","setPasswordUrl","logoutUrl","client_id","client_secret","redirect_uri","scope","service","conversation","allowedTags","avatar","device","encryption","logger","mercury","metrics","support","user","llm","voicea","meetings","mediaSettings","sendAudio","sendVideo","receiveAudio","receiveVideo","pstn","sendShare","receiveShare","reconnection","enabled","detection","retry","times","backOff","start","rate","stats","interval","historyMax","clientType","clientName","mqaMetricsInterval","autoSendMQA","initialize","attrs","boundedStorage","initialBoundedStorage","unboundedStorage","initialUnboundedStorage","webex","authorization","getUserToken","toString","getClientToken","sessionId","MOCK_LOGGER","console","error","warn","log","info","debug","webSocketUrl","getWebSocketUrl","features","developer","entitlement","registered","register","feature","setFeature","getFeature","sendUnstructured","module","exports"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n\n/* istanbul ignore next */\nif (typeof Promise === 'undefined') {\n // eslint-disable-next-line global-require\n require('es6-promise').polyfill();\n}\n\nconst _ = require('lodash');\nconst sinon = require('sinon');\nconst State = require('ampersand-state');\n\nconst nonInternalPlugins = [\n 'authorization',\n 'credentials',\n 'memberships',\n 'messages',\n 'logger',\n 'people',\n 'phone',\n 'meetings',\n 'rooms',\n 'teams',\n 'teamMemberships',\n 'webhooks'\n];\n\n/**\n * Mock Webex constructor\n * @param {Object} options\n * @returns {MockWebex}\n */\nfunction makeWebex(options) {\n const requestPromise = Promise.resolve({statusCode: 200, body: {}});\n const uploadPromise = Promise.resolve({});\n\n options = options || {};\n options.children = options.children || {};\n\n const internalOptions = {};\n\n const internalChildren = {};\n const externalChildren = {};\n\n Object.keys(options.children).forEach((key) => {\n if (nonInternalPlugins.indexOf(key) === -1) {\n internalChildren[key] = options.children[key];\n }\n else {\n externalChildren[key] = options.children[key];\n }\n });\n\n internalOptions.children = internalChildren;\n options.children = externalChildren;\n\n // This weird assignment is to make sure \"internal\" is the first property.\n // Because it turns out we're relying on ordering\n options.children = Object.assign({\n internal: State.extend(internalOptions)\n }, options.children);\n\n requestPromise.on = uploadPromise.on = function on() {\n return requestPromise;\n };\n\n /**\n * produces a mock storage object\n * @param {Object} data\n * @returns {Storage}\n */\n function makeMockStorage(data) {\n data = data || {};\n\n return {\n data,\n on: sinon.spy(),\n once: sinon.spy(),\n listenTo: sinon.spy(),\n listenToAndRun: sinon.spy(),\n clear: function clear(namespace) {\n this.data = this.data || data;\n this.data[namespace] = {};\n },\n del: function del(namespace, key) {\n this.data = this.data || data;\n this.data[namespace] = this.data[namespace] || {};\n // eslint-disable-next-line prefer-reflect\n delete this.data[namespace][key];\n },\n get: function get(namespace, key) {\n this.data = this.data || data;\n this.data[namespace] = this.data[namespace] || {};\n const ret = this.data[namespace][key];\n\n if (ret) {\n return Promise.resolve(ret);\n }\n\n return Promise.reject(new Error('MockNotFoundError'));\n },\n put: function put(namespace, key, value) {\n this.data = this.data || data;\n try {\n // this is the simplest way to to turn ampstate objects into bare\n // objects without actually checking if they're ampstate objects\n value = JSON.parse(JSON.stringify(value));\n }\n catch (err) {\n // ignore\n }\n this.data[namespace] = this.data[namespace] || {};\n this.data[namespace][key] = value;\n\n return Promise.resolve();\n }\n };\n }\n\n const request = sinon.stub().returns(requestPromise);\n const upload = sinon.stub().returns(uploadPromise);\n const MockWebex = State.extend(_.defaults(options, {\n extraProperies: 'allow',\n request,\n upload,\n refresh: function refresh() {\n return Promise.resolve();\n },\n setConfig: function setConfig(config) {\n this.config.credentials.idbroker.url = config.credentials.idbroker.url || process.env.IDBROKER_BASE_URL;\n this.config.credentials.identity.url = config.credentials.identity.url || process.env.IDENTITY_BASE_URL;\n\n return Promise.resolve();\n },\n config: {\n credentials: {\n idbroker: {\n url: process.env.IDBROKER_BASE_URL,\n defaultUrl: process.env.IDBROKER_BASE_URL\n },\n identity: {\n url: process.env.IDENTITY_BASE_URL,\n defaultUrl: process.env.IDENTITY_BASE_URL\n },\n activationUrl: `${process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'}/idb/token/v1/actions/UserActivation/invoke`,\n authorizeUrl: `${process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'}/idb/oauth2/v1/authorize`,\n setPasswordUrl: `${process.env.IDBROKER_BASE_URL || 'https://identity.webex.com'}/identity/scim/v1/Users`,\n logoutUrl: `${process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'}/idb/oauth2/v1/logout`,\n // eslint-disable-next-line camelcase\n client_id: 'fake',\n // eslint-disable-next-line camelcase\n client_secret: 'fake',\n // eslint-disable-next-line camelcase\n redirect_uri: 'http://example.com',\n // eslint-disable-next-line camelcase\n scope: 'scope:one',\n service: 'webex'\n },\n conversation: {\n allowedTags: {\n 'webex-mention': ['data-object-type', 'data-object-id', 'data-object-url']\n }\n },\n avatar: {},\n device: {},\n encryption: {},\n logger: {},\n mercury: {},\n metrics: {},\n support: {},\n user: {},\n llm: {},\n voicea: {},\n meetings: {\n mediaSettings: {\n sendAudio: true,\n sendVideo: true,\n receiveAudio: true,\n receiveVideo: true,\n pstn: false,\n sendShare: false,\n receiveShare: false\n },\n reconnection: {\n enabled: true,\n detection: true,\n retry: {\n times: 2,\n backOff: {\n start: 1000,\n rate: 2\n }\n }\n },\n stats: {\n interval: 1000,\n historyMax: 120\n },\n metrics: {\n clientType: 'TEAMS_CLIENT',\n clientName: 'WEBEX_JS_SDK',\n mqaMetricsInterval: 60000,\n autoSendMQA: true\n }\n }\n },\n initialize: function initialize(attrs) {\n this.boundedStorage = makeMockStorage(attrs && attrs.initialBoundedStorage);\n this.unboundedStorage = makeMockStorage(attrs && attrs.initialUnboundedStorage);\n }\n }));\n\n const webex = new MockWebex(options && options.attrs);\n\n sinon.spy(webex, 'refresh');\n _.defaults(webex, {\n credentials: {\n authorization: 'Basic NOTATOKEN',\n getUserToken: sinon.stub().returns(Promise.resolve({\n toString: function toString() {\n return 'Basic NOTATOKEN';\n }\n })),\n getClientToken: sinon.stub().returns(Promise.resolve({\n toString: function toString() {\n return 'Basic NOTATOKEN';\n }\n }))\n },\n sessionId: 'mock-webex_88888888-4444-4444-4444-aaaaaaaaaaaa',\n logger: process.env.MOCK_LOGGER ? console : {\n error: sinon.spy(),\n warn: sinon.spy(),\n log: sinon.spy(),\n info: sinon.spy(),\n debug: sinon.spy()\n }\n });\n\n _.defaults(webex.internal, {\n avatar: {},\n conversation: {},\n device: {\n webSocketUrl: 'ws://example.com',\n getWebSocketUrl: sinon.stub().returns(Promise.resolve('ws://example-2.com')),\n features: {\n developer: {\n get: sinon.stub()\n },\n entitlement: {\n get: sinon.stub()\n },\n user: {\n get: sinon.stub()\n }\n },\n registered: true,\n register: sinon.stub().returns(Promise.resolve())\n },\n feature: {\n setFeature: sinon.stub().returns(Promise.resolve(false)),\n getFeature: sinon.stub().returns(Promise.resolve(false))\n },\n encryption: {},\n metrics: {\n sendUnstructured: sinon.spy()\n },\n support: {},\n user: {},\n mercury: {},\n llm: {},\n voicea: {},\n });\n\n return webex;\n}\n\nmodule.exports = makeWebex;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["require","polyfill","_","sinon","State","nonInternalPlugins","makeWebex","options","requestPromise","resolve","statusCode","body","uploadPromise","children","internalOptions","internalChildren","externalChildren","forEach","key","indexOf","internal","extend","on","makeMockStorage","data","spy","once","listenTo","listenToAndRun","clear","namespace","del","get","ret","reject","Error","put","value","JSON","parse","err","request","stub","returns","upload","MockWebex","defaults","extraProperies","refresh","setConfig","config","credentials","idbroker","url","process","env","IDBROKER_BASE_URL","identity","IDENTITY_BASE_URL","defaultUrl","activationUrl","authorizeUrl","setPasswordUrl","logoutUrl","client_id","client_secret","redirect_uri","scope","service","conversation","allowedTags","avatar","device","encryption","logger","mercury","metrics","support","user","llm","voicea","meetings","mediaSettings","sendAudio","sendVideo","receiveAudio","receiveVideo","pstn","sendShare","receiveShare","reconnection","enabled","detection","retry","times","backOff","start","rate","stats","interval","historyMax","clientType","clientName","mqaMetricsInterval","autoSendMQA","initialize","attrs","boundedStorage","initialBoundedStorage","unboundedStorage","initialUnboundedStorage","webex","authorization","getUserToken","toString","getClientToken","sessionId","MOCK_LOGGER","console","error","warn","log","info","debug","webSocketUrl","getWebSocketUrl","features","developer","entitlement","registered","register","feature","setFeature","getFeature","sendUnstructured","module","exports"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* istanbul ignore next */\nif (typeof Promise === 'undefined') {\n // eslint-disable-next-line global-require\n require('es6-promise').polyfill();\n}\n\nconst _ = require('lodash');\nconst sinon = require('sinon');\nconst State = require('ampersand-state');\n\nconst nonInternalPlugins = [\n 'authorization',\n 'credentials',\n 'memberships',\n 'messages',\n 'logger',\n 'people',\n 'phone',\n 'meetings',\n 'rooms',\n 'teams',\n 'teamMemberships',\n 'webhooks',\n];\n\n/**\n * Mock Webex constructor\n * @param {Object} options\n * @returns {MockWebex}\n */\nfunction makeWebex(options) {\n const requestPromise = Promise.resolve({statusCode: 200, body: {}});\n const uploadPromise = Promise.resolve({});\n\n options = options || {};\n options.children = options.children || {};\n\n const internalOptions = {};\n\n const internalChildren = {};\n const externalChildren = {};\n\n Object.keys(options.children).forEach((key) => {\n if (nonInternalPlugins.indexOf(key) === -1) {\n internalChildren[key] = options.children[key];\n } else {\n externalChildren[key] = options.children[key];\n }\n });\n\n internalOptions.children = internalChildren;\n options.children = externalChildren;\n\n // This weird assignment is to make sure \"internal\" is the first property.\n // Because it turns out we're relying on ordering\n options.children = {\n internal: State.extend(internalOptions),\n ...options.children,\n };\n\n requestPromise.on = uploadPromise.on = function on() {\n return requestPromise;\n };\n\n /**\n * produces a mock storage object\n * @param {Object} data\n * @returns {Storage}\n */\n function makeMockStorage(data) {\n data = data || {};\n\n return {\n data,\n on: sinon.spy(),\n once: sinon.spy(),\n listenTo: sinon.spy(),\n listenToAndRun: sinon.spy(),\n clear: function clear(namespace) {\n this.data = this.data || data;\n this.data[namespace] = {};\n },\n del: function del(namespace, key) {\n this.data = this.data || data;\n this.data[namespace] = this.data[namespace] || {};\n // eslint-disable-next-line prefer-reflect\n delete this.data[namespace][key];\n },\n get: function get(namespace, key) {\n this.data = this.data || data;\n this.data[namespace] = this.data[namespace] || {};\n const ret = this.data[namespace][key];\n\n if (ret) {\n return Promise.resolve(ret);\n }\n\n return Promise.reject(new Error('MockNotFoundError'));\n },\n put: function put(namespace, key, value) {\n this.data = this.data || data;\n try {\n // this is the simplest way to to turn ampstate objects into bare\n // objects without actually checking if they're ampstate objects\n value = JSON.parse(JSON.stringify(value));\n } catch (err) {\n // ignore\n }\n this.data[namespace] = this.data[namespace] || {};\n this.data[namespace][key] = value;\n\n return Promise.resolve();\n },\n };\n }\n\n const request = sinon.stub().returns(requestPromise);\n const upload = sinon.stub().returns(uploadPromise);\n const MockWebex = State.extend(\n _.defaults(options, {\n extraProperies: 'allow',\n request,\n upload,\n refresh: function refresh() {\n return Promise.resolve();\n },\n setConfig: function setConfig(config) {\n this.config.credentials.idbroker.url =\n config.credentials.idbroker.url || process.env.IDBROKER_BASE_URL;\n this.config.credentials.identity.url =\n config.credentials.identity.url || process.env.IDENTITY_BASE_URL;\n\n return Promise.resolve();\n },\n config: {\n credentials: {\n idbroker: {\n url: process.env.IDBROKER_BASE_URL,\n defaultUrl: process.env.IDBROKER_BASE_URL,\n },\n identity: {\n url: process.env.IDENTITY_BASE_URL,\n defaultUrl: process.env.IDENTITY_BASE_URL,\n },\n activationUrl: `${\n process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'\n }/idb/token/v1/actions/UserActivation/invoke`,\n authorizeUrl: `${\n process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'\n }/idb/oauth2/v1/authorize`,\n setPasswordUrl: `${\n process.env.IDBROKER_BASE_URL || 'https://identity.webex.com'\n }/identity/scim/v1/Users`,\n logoutUrl: `${\n process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'\n }/idb/oauth2/v1/logout`,\n // eslint-disable-next-line camelcase\n client_id: 'fake',\n // eslint-disable-next-line camelcase\n client_secret: 'fake',\n // eslint-disable-next-line camelcase\n redirect_uri: 'http://example.com',\n // eslint-disable-next-line camelcase\n scope: 'scope:one',\n service: 'webex',\n },\n conversation: {\n allowedTags: {\n 'webex-mention': ['data-object-type', 'data-object-id', 'data-object-url'],\n },\n },\n avatar: {},\n device: {},\n encryption: {},\n logger: {},\n mercury: {},\n metrics: {},\n support: {},\n user: {},\n llm: {},\n voicea: {},\n meetings: {\n mediaSettings: {\n sendAudio: true,\n sendVideo: true,\n receiveAudio: true,\n receiveVideo: true,\n pstn: false,\n sendShare: false,\n receiveShare: false,\n },\n reconnection: {\n enabled: true,\n detection: true,\n retry: {\n times: 2,\n backOff: {\n start: 1000,\n rate: 2,\n },\n },\n },\n stats: {\n interval: 1000,\n historyMax: 120,\n },\n metrics: {\n clientType: 'TEAMS_CLIENT',\n clientName: 'WEBEX_JS_SDK',\n mqaMetricsInterval: 60000,\n autoSendMQA: true,\n },\n },\n },\n initialize: function initialize(attrs) {\n this.boundedStorage = makeMockStorage(attrs && attrs.initialBoundedStorage);\n this.unboundedStorage = makeMockStorage(attrs && attrs.initialUnboundedStorage);\n },\n })\n );\n\n const webex = new MockWebex(options && options.attrs);\n\n sinon.spy(webex, 'refresh');\n _.defaults(webex, {\n credentials: {\n authorization: 'Basic NOTATOKEN',\n getUserToken: sinon.stub().returns(\n Promise.resolve({\n toString: function toString() {\n return 'Basic NOTATOKEN';\n },\n })\n ),\n getClientToken: sinon.stub().returns(\n Promise.resolve({\n toString: function toString() {\n return 'Basic NOTATOKEN';\n },\n })\n ),\n },\n sessionId: 'mock-webex_88888888-4444-4444-4444-aaaaaaaaaaaa',\n logger: process.env.MOCK_LOGGER\n ? console\n : {\n error: sinon.spy(),\n warn: sinon.spy(),\n log: sinon.spy(),\n info: sinon.spy(),\n debug: sinon.spy(),\n },\n });\n\n _.defaults(webex.internal, {\n avatar: {},\n conversation: {},\n device: {\n webSocketUrl: 'ws://example.com',\n getWebSocketUrl: sinon.stub().returns(Promise.resolve('ws://example-2.com')),\n features: {\n developer: {\n get: sinon.stub(),\n },\n entitlement: {\n get: sinon.stub(),\n },\n user: {\n get: sinon.stub(),\n },\n },\n registered: true,\n register: sinon.stub().returns(Promise.resolve()),\n },\n feature: {\n setFeature: sinon.stub().returns(Promise.resolve(false)),\n getFeature: sinon.stub().returns(Promise.resolve(false)),\n },\n encryption: {},\n metrics: {\n sendUnstructured: sinon.spy(),\n },\n support: {},\n user: {},\n mercury: {},\n llm: {},\n voicea: {},\n });\n\n return webex;\n}\n\nmodule.exports = makeWebex;\n"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
/* istanbul ignore next */
|
|
7
6
|
if (typeof Promise === 'undefined') {
|
|
8
7
|
// eslint-disable-next-line global-require
|
|
@@ -25,7 +24,7 @@ const nonInternalPlugins = [
|
|
|
25
24
|
'rooms',
|
|
26
25
|
'teams',
|
|
27
26
|
'teamMemberships',
|
|
28
|
-
'webhooks'
|
|
27
|
+
'webhooks',
|
|
29
28
|
];
|
|
30
29
|
|
|
31
30
|
/**
|
|
@@ -48,8 +47,7 @@ function makeWebex(options) {
|
|
|
48
47
|
Object.keys(options.children).forEach((key) => {
|
|
49
48
|
if (nonInternalPlugins.indexOf(key) === -1) {
|
|
50
49
|
internalChildren[key] = options.children[key];
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
50
|
+
} else {
|
|
53
51
|
externalChildren[key] = options.children[key];
|
|
54
52
|
}
|
|
55
53
|
});
|
|
@@ -59,9 +57,10 @@ function makeWebex(options) {
|
|
|
59
57
|
|
|
60
58
|
// This weird assignment is to make sure "internal" is the first property.
|
|
61
59
|
// Because it turns out we're relying on ordering
|
|
62
|
-
options.children =
|
|
63
|
-
internal: State.extend(internalOptions)
|
|
64
|
-
|
|
60
|
+
options.children = {
|
|
61
|
+
internal: State.extend(internalOptions),
|
|
62
|
+
...options.children,
|
|
63
|
+
};
|
|
65
64
|
|
|
66
65
|
requestPromise.on = uploadPromise.on = function on() {
|
|
67
66
|
return requestPromise;
|
|
@@ -108,110 +107,121 @@ function makeWebex(options) {
|
|
|
108
107
|
// this is the simplest way to to turn ampstate objects into bare
|
|
109
108
|
// objects without actually checking if they're ampstate objects
|
|
110
109
|
value = JSON.parse(JSON.stringify(value));
|
|
111
|
-
}
|
|
112
|
-
catch (err) {
|
|
110
|
+
} catch (err) {
|
|
113
111
|
// ignore
|
|
114
112
|
}
|
|
115
113
|
this.data[namespace] = this.data[namespace] || {};
|
|
116
114
|
this.data[namespace][key] = value;
|
|
117
115
|
|
|
118
116
|
return Promise.resolve();
|
|
119
|
-
}
|
|
117
|
+
},
|
|
120
118
|
};
|
|
121
119
|
}
|
|
122
120
|
|
|
123
121
|
const request = sinon.stub().returns(requestPromise);
|
|
124
122
|
const upload = sinon.stub().returns(uploadPromise);
|
|
125
|
-
const MockWebex = State.extend(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
setConfig: function setConfig(config) {
|
|
133
|
-
this.config.credentials.idbroker.url = config.credentials.idbroker.url || process.env.IDBROKER_BASE_URL;
|
|
134
|
-
this.config.credentials.identity.url = config.credentials.identity.url || process.env.IDENTITY_BASE_URL;
|
|
135
|
-
|
|
136
|
-
return Promise.resolve();
|
|
137
|
-
},
|
|
138
|
-
config: {
|
|
139
|
-
credentials: {
|
|
140
|
-
idbroker: {
|
|
141
|
-
url: process.env.IDBROKER_BASE_URL,
|
|
142
|
-
defaultUrl: process.env.IDBROKER_BASE_URL
|
|
143
|
-
},
|
|
144
|
-
identity: {
|
|
145
|
-
url: process.env.IDENTITY_BASE_URL,
|
|
146
|
-
defaultUrl: process.env.IDENTITY_BASE_URL
|
|
147
|
-
},
|
|
148
|
-
activationUrl: `${process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'}/idb/token/v1/actions/UserActivation/invoke`,
|
|
149
|
-
authorizeUrl: `${process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'}/idb/oauth2/v1/authorize`,
|
|
150
|
-
setPasswordUrl: `${process.env.IDBROKER_BASE_URL || 'https://identity.webex.com'}/identity/scim/v1/Users`,
|
|
151
|
-
logoutUrl: `${process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'}/idb/oauth2/v1/logout`,
|
|
152
|
-
// eslint-disable-next-line camelcase
|
|
153
|
-
client_id: 'fake',
|
|
154
|
-
// eslint-disable-next-line camelcase
|
|
155
|
-
client_secret: 'fake',
|
|
156
|
-
// eslint-disable-next-line camelcase
|
|
157
|
-
redirect_uri: 'http://example.com',
|
|
158
|
-
// eslint-disable-next-line camelcase
|
|
159
|
-
scope: 'scope:one',
|
|
160
|
-
service: 'webex'
|
|
123
|
+
const MockWebex = State.extend(
|
|
124
|
+
_.defaults(options, {
|
|
125
|
+
extraProperies: 'allow',
|
|
126
|
+
request,
|
|
127
|
+
upload,
|
|
128
|
+
refresh: function refresh() {
|
|
129
|
+
return Promise.resolve();
|
|
161
130
|
},
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
131
|
+
setConfig: function setConfig(config) {
|
|
132
|
+
this.config.credentials.idbroker.url =
|
|
133
|
+
config.credentials.idbroker.url || process.env.IDBROKER_BASE_URL;
|
|
134
|
+
this.config.credentials.identity.url =
|
|
135
|
+
config.credentials.identity.url || process.env.IDENTITY_BASE_URL;
|
|
136
|
+
|
|
137
|
+
return Promise.resolve();
|
|
166
138
|
},
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
139
|
+
config: {
|
|
140
|
+
credentials: {
|
|
141
|
+
idbroker: {
|
|
142
|
+
url: process.env.IDBROKER_BASE_URL,
|
|
143
|
+
defaultUrl: process.env.IDBROKER_BASE_URL,
|
|
144
|
+
},
|
|
145
|
+
identity: {
|
|
146
|
+
url: process.env.IDENTITY_BASE_URL,
|
|
147
|
+
defaultUrl: process.env.IDENTITY_BASE_URL,
|
|
148
|
+
},
|
|
149
|
+
activationUrl: `${
|
|
150
|
+
process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'
|
|
151
|
+
}/idb/token/v1/actions/UserActivation/invoke`,
|
|
152
|
+
authorizeUrl: `${
|
|
153
|
+
process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'
|
|
154
|
+
}/idb/oauth2/v1/authorize`,
|
|
155
|
+
setPasswordUrl: `${
|
|
156
|
+
process.env.IDBROKER_BASE_URL || 'https://identity.webex.com'
|
|
157
|
+
}/identity/scim/v1/Users`,
|
|
158
|
+
logoutUrl: `${
|
|
159
|
+
process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'
|
|
160
|
+
}/idb/oauth2/v1/logout`,
|
|
161
|
+
// eslint-disable-next-line camelcase
|
|
162
|
+
client_id: 'fake',
|
|
163
|
+
// eslint-disable-next-line camelcase
|
|
164
|
+
client_secret: 'fake',
|
|
165
|
+
// eslint-disable-next-line camelcase
|
|
166
|
+
redirect_uri: 'http://example.com',
|
|
167
|
+
// eslint-disable-next-line camelcase
|
|
168
|
+
scope: 'scope:one',
|
|
169
|
+
service: 'webex',
|
|
186
170
|
},
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
times: 2,
|
|
192
|
-
backOff: {
|
|
193
|
-
start: 1000,
|
|
194
|
-
rate: 2
|
|
195
|
-
}
|
|
196
|
-
}
|
|
171
|
+
conversation: {
|
|
172
|
+
allowedTags: {
|
|
173
|
+
'webex-mention': ['data-object-type', 'data-object-id', 'data-object-url'],
|
|
174
|
+
},
|
|
197
175
|
},
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
176
|
+
avatar: {},
|
|
177
|
+
device: {},
|
|
178
|
+
encryption: {},
|
|
179
|
+
logger: {},
|
|
180
|
+
mercury: {},
|
|
181
|
+
metrics: {},
|
|
182
|
+
support: {},
|
|
183
|
+
user: {},
|
|
184
|
+
llm: {},
|
|
185
|
+
voicea: {},
|
|
186
|
+
meetings: {
|
|
187
|
+
mediaSettings: {
|
|
188
|
+
sendAudio: true,
|
|
189
|
+
sendVideo: true,
|
|
190
|
+
receiveAudio: true,
|
|
191
|
+
receiveVideo: true,
|
|
192
|
+
pstn: false,
|
|
193
|
+
sendShare: false,
|
|
194
|
+
receiveShare: false,
|
|
195
|
+
},
|
|
196
|
+
reconnection: {
|
|
197
|
+
enabled: true,
|
|
198
|
+
detection: true,
|
|
199
|
+
retry: {
|
|
200
|
+
times: 2,
|
|
201
|
+
backOff: {
|
|
202
|
+
start: 1000,
|
|
203
|
+
rate: 2,
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
stats: {
|
|
208
|
+
interval: 1000,
|
|
209
|
+
historyMax: 120,
|
|
210
|
+
},
|
|
211
|
+
metrics: {
|
|
212
|
+
clientType: 'TEAMS_CLIENT',
|
|
213
|
+
clientName: 'WEBEX_JS_SDK',
|
|
214
|
+
mqaMetricsInterval: 60000,
|
|
215
|
+
autoSendMQA: true,
|
|
216
|
+
},
|
|
201
217
|
},
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
},
|
|
210
|
-
initialize: function initialize(attrs) {
|
|
211
|
-
this.boundedStorage = makeMockStorage(attrs && attrs.initialBoundedStorage);
|
|
212
|
-
this.unboundedStorage = makeMockStorage(attrs && attrs.initialUnboundedStorage);
|
|
213
|
-
}
|
|
214
|
-
}));
|
|
218
|
+
},
|
|
219
|
+
initialize: function initialize(attrs) {
|
|
220
|
+
this.boundedStorage = makeMockStorage(attrs && attrs.initialBoundedStorage);
|
|
221
|
+
this.unboundedStorage = makeMockStorage(attrs && attrs.initialUnboundedStorage);
|
|
222
|
+
},
|
|
223
|
+
})
|
|
224
|
+
);
|
|
215
225
|
|
|
216
226
|
const webex = new MockWebex(options && options.attrs);
|
|
217
227
|
|
|
@@ -219,25 +229,31 @@ function makeWebex(options) {
|
|
|
219
229
|
_.defaults(webex, {
|
|
220
230
|
credentials: {
|
|
221
231
|
authorization: 'Basic NOTATOKEN',
|
|
222
|
-
getUserToken: sinon.stub().returns(
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
+
getUserToken: sinon.stub().returns(
|
|
233
|
+
Promise.resolve({
|
|
234
|
+
toString: function toString() {
|
|
235
|
+
return 'Basic NOTATOKEN';
|
|
236
|
+
},
|
|
237
|
+
})
|
|
238
|
+
),
|
|
239
|
+
getClientToken: sinon.stub().returns(
|
|
240
|
+
Promise.resolve({
|
|
241
|
+
toString: function toString() {
|
|
242
|
+
return 'Basic NOTATOKEN';
|
|
243
|
+
},
|
|
244
|
+
})
|
|
245
|
+
),
|
|
232
246
|
},
|
|
233
247
|
sessionId: 'mock-webex_88888888-4444-4444-4444-aaaaaaaaaaaa',
|
|
234
|
-
logger: process.env.MOCK_LOGGER
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
248
|
+
logger: process.env.MOCK_LOGGER
|
|
249
|
+
? console
|
|
250
|
+
: {
|
|
251
|
+
error: sinon.spy(),
|
|
252
|
+
warn: sinon.spy(),
|
|
253
|
+
log: sinon.spy(),
|
|
254
|
+
info: sinon.spy(),
|
|
255
|
+
debug: sinon.spy(),
|
|
256
|
+
},
|
|
241
257
|
});
|
|
242
258
|
|
|
243
259
|
_.defaults(webex.internal, {
|
|
@@ -248,25 +264,25 @@ function makeWebex(options) {
|
|
|
248
264
|
getWebSocketUrl: sinon.stub().returns(Promise.resolve('ws://example-2.com')),
|
|
249
265
|
features: {
|
|
250
266
|
developer: {
|
|
251
|
-
get: sinon.stub()
|
|
267
|
+
get: sinon.stub(),
|
|
252
268
|
},
|
|
253
269
|
entitlement: {
|
|
254
|
-
get: sinon.stub()
|
|
270
|
+
get: sinon.stub(),
|
|
255
271
|
},
|
|
256
272
|
user: {
|
|
257
|
-
get: sinon.stub()
|
|
258
|
-
}
|
|
273
|
+
get: sinon.stub(),
|
|
274
|
+
},
|
|
259
275
|
},
|
|
260
276
|
registered: true,
|
|
261
|
-
register: sinon.stub().returns(Promise.resolve())
|
|
277
|
+
register: sinon.stub().returns(Promise.resolve()),
|
|
262
278
|
},
|
|
263
279
|
feature: {
|
|
264
280
|
setFeature: sinon.stub().returns(Promise.resolve(false)),
|
|
265
|
-
getFeature: sinon.stub().returns(Promise.resolve(false))
|
|
281
|
+
getFeature: sinon.stub().returns(Promise.resolve(false)),
|
|
266
282
|
},
|
|
267
283
|
encryption: {},
|
|
268
284
|
metrics: {
|
|
269
|
-
sendUnstructured: sinon.spy()
|
|
285
|
+
sendUnstructured: sinon.spy(),
|
|
270
286
|
},
|
|
271
287
|
support: {},
|
|
272
288
|
user: {},
|