@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 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; // This weird assignment is to make sure "internal" is the first property.
58
- // Because it turns out we're relying on ordering
54
+ options.children = externalChildren;
59
55
 
60
- options.children = (0, _assign.default)({
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] || {}; // eslint-disable-next-line prefer-reflect
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) {// ignore
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/test-helper-mock-webex",
3
- "version": "2.37.0",
3
+ "version": "2.37.1",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
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 = Object.assign({
63
- internal: State.extend(internalOptions)
64
- }, options.children);
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(_.defaults(options, {
126
- extraProperies: 'allow',
127
- request,
128
- upload,
129
- refresh: function refresh() {
130
- return Promise.resolve();
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
- conversation: {
163
- allowedTags: {
164
- 'webex-mention': ['data-object-type', 'data-object-id', 'data-object-url']
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
- avatar: {},
168
- device: {},
169
- encryption: {},
170
- logger: {},
171
- mercury: {},
172
- metrics: {},
173
- support: {},
174
- user: {},
175
- llm: {},
176
- voicea: {},
177
- meetings: {
178
- mediaSettings: {
179
- sendAudio: true,
180
- sendVideo: true,
181
- receiveAudio: true,
182
- receiveVideo: true,
183
- pstn: false,
184
- sendShare: false,
185
- receiveShare: false
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
- reconnection: {
188
- enabled: true,
189
- detection: true,
190
- retry: {
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
- stats: {
199
- interval: 1000,
200
- historyMax: 120
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
- metrics: {
203
- clientType: 'TEAMS_CLIENT',
204
- clientName: 'WEBEX_JS_SDK',
205
- mqaMetricsInterval: 60000,
206
- autoSendMQA: true
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(Promise.resolve({
223
- toString: function toString() {
224
- return 'Basic NOTATOKEN';
225
- }
226
- })),
227
- getClientToken: sinon.stub().returns(Promise.resolve({
228
- toString: function toString() {
229
- return 'Basic NOTATOKEN';
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 ? console : {
235
- error: sinon.spy(),
236
- warn: sinon.spy(),
237
- log: sinon.spy(),
238
- info: sinon.spy(),
239
- debug: sinon.spy()
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: {},