@webex/plugin-meetings 3.0.0-next.17 → 3.0.0-next.18

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.
@@ -209,7 +209,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
209
209
  sessionId: this.sessionId
210
210
  });
211
211
  },
212
- version: "3.0.0-next.17"
212
+ version: "3.0.0-next.18"
213
213
  });
214
214
  var _default = exports.default = Breakout;
215
215
  //# sourceMappingURL=breakout.js.map
@@ -1041,7 +1041,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1041
1041
  this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1042
1042
  }
1043
1043
  },
1044
- version: "3.0.0-next.17"
1044
+ version: "3.0.0-next.18"
1045
1045
  });
1046
1046
  var _default = exports.default = Breakouts;
1047
1047
  //# sourceMappingURL=index.js.map
@@ -373,7 +373,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
373
373
  throw error;
374
374
  });
375
375
  },
376
- version: "3.0.0-next.17"
376
+ version: "3.0.0-next.18"
377
377
  });
378
378
  var _default = exports.default = SimultaneousInterpretation;
379
379
  //# sourceMappingURL=index.js.map
@@ -18,7 +18,7 @@ var SILanguage = _webexCore.WebexPlugin.extend({
18
18
  languageCode: 'number',
19
19
  languageName: 'string'
20
20
  },
21
- version: "3.0.0-next.17"
21
+ version: "3.0.0-next.18"
22
22
  });
23
23
  var _default = exports.default = SILanguage;
24
24
  //# sourceMappingURL=siLanguage.js.map
@@ -33,16 +33,18 @@ function ReachabilityRequest(webex) {
33
33
  * @returns {Promise}
34
34
  */
35
35
  (0, _defineProperty2.default)(this, "getClusters", function (ipVersion) {
36
- return _this.webex.request({
37
- method: _constants.HTTP_VERBS.GET,
38
- shouldRefreshAccessToken: false,
39
- api: _constants.API.CALLIOPEDISCOVERY,
40
- resource: _constants.RESOURCE.CLUSTERS,
41
- qs: {
42
- JCSupport: 1,
43
- ipver: ipVersion
44
- }
45
- }).then(function (res) {
36
+ return _this.webex.internal.newMetrics.callDiagnosticLatencies.measureLatency(function () {
37
+ return _this.webex.request({
38
+ method: _constants.HTTP_VERBS.GET,
39
+ shouldRefreshAccessToken: false,
40
+ api: _constants.API.CALLIOPEDISCOVERY,
41
+ resource: _constants.RESOURCE.CLUSTERS,
42
+ qs: {
43
+ JCSupport: 1,
44
+ ipver: ipVersion
45
+ }
46
+ });
47
+ }, 'internal.get.cluster.time').then(function (res) {
46
48
  var _res$body = res.body,
47
49
  clusters = _res$body.clusters,
48
50
  joinCookie = _res$body.joinCookie;
@@ -1 +1 @@
1
- {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_constants","ReachabilityRequest","_createClass2","default","webex","_this","_classCallCheck2","_defineProperty2","ipVersion","request","method","HTTP_VERBS","GET","shouldRefreshAccessToken","api","API","CALLIOPEDISCOVERY","resource","RESOURCE","CLUSTERS","qs","JCSupport","ipver","then","res","_res$body","body","clusters","joinCookie","_keys","forEach","key","_res$body$clusterClas","_res$body$clusterClas2","isVideoMesh","clusterClasses","hybridMedia","includes","LoggerProxy","logger","log","concat","_stringify","localSDPList","POST","REACHABILITY","offers","_default","exports"],"sources":["request.ts"],"sourcesContent":["import LoggerProxy from '../common/logs/logger-proxy';\nimport {HTTP_VERBS, RESOURCE, API, IP_VERSION} from '../constants';\n\nexport interface ClusterNode {\n isVideoMesh: boolean;\n udp: Array<string>;\n tcp: Array<string>;\n xtls: Array<string>;\n}\n\nexport type ClusterList = {\n [key: string]: ClusterNode;\n};\n\n/**\n * @class ReachabilityRequest\n */\nclass ReachabilityRequest {\n webex: any;\n\n /**\n * Creates an instance of ReachabilityRequest.\n * @param {object} webex\n * @memberof ReachabilityRequest\n */\n constructor(webex: object) {\n this.webex = webex;\n }\n\n /**\n * Gets the cluster information\n *\n * @param {IP_VERSION} ipVersion information about current ip network we're on\n * @returns {Promise}\n */\n getClusters = (ipVersion?: IP_VERSION): Promise<{clusters: ClusterList; joinCookie: any}> =>\n this.webex\n .request({\n method: HTTP_VERBS.GET,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.CLUSTERS,\n qs: {\n JCSupport: 1,\n ipver: ipVersion,\n },\n })\n .then((res) => {\n const {clusters, joinCookie} = res.body;\n\n Object.keys(clusters).forEach((key) => {\n clusters[key].isVideoMesh = !!res.body.clusterClasses?.hybridMedia?.includes(key);\n });\n\n LoggerProxy.logger.log(\n `Reachability:request#getClusters --> get clusters (ipver=${ipVersion}) successful:${JSON.stringify(\n clusters\n )}`\n );\n\n return {\n clusters,\n joinCookie,\n };\n });\n\n /**\n * gets remote SDP For Clusters\n * @param {Object} localSDPList localSDPs for the cluster\n * @returns {Object}\n */\n remoteSDPForClusters = (localSDPList: object) =>\n this.webex\n .request({\n method: HTTP_VERBS.POST,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.REACHABILITY,\n body: {offers: localSDPList},\n })\n .then((res) => {\n LoggerProxy.logger.log(\n 'Reachability:request#remoteSDPForClusters --> Remote SDPs got succcessfully'\n );\n\n return res.body;\n });\n}\n\nexport default ReachabilityRequest;\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAaA;AACA;AACA;AAFA,IAGME,mBAAmB,oBAAAC,aAAA,CAAAC,OAAA;AAGvB;AACF;AACA;AACA;AACA;AACE,SAAAF,oBAAYG,KAAa,EAAE;EAAA,IAAAC,KAAA;EAAA,IAAAC,gBAAA,CAAAH,OAAA,QAAAF,mBAAA;EAAA,IAAAM,gBAAA,CAAAJ,OAAA;EAI3B;AACF;AACA;AACA;AACA;AACA;EALE,IAAAI,gBAAA,CAAAJ,OAAA,uBAMc,UAACK,SAAsB;IAAA,OACnCH,KAAI,CAACD,KAAK,CACPK,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAACC,GAAG;MACtBC,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAACC,QAAQ;MAC3BC,EAAE,EAAE;QACFC,SAAS,EAAE,CAAC;QACZC,KAAK,EAAEd;MACT;IACF,CAAC,CAAC,CACDe,IAAI,CAAC,UAACC,GAAG,EAAK;MACb,IAAAC,SAAA,GAA+BD,GAAG,CAACE,IAAI;QAAhCC,QAAQ,GAAAF,SAAA,CAARE,QAAQ;QAAEC,UAAU,GAAAH,SAAA,CAAVG,UAAU;MAE3B,IAAAC,KAAA,CAAA1B,OAAA,EAAYwB,QAAQ,CAAC,CAACG,OAAO,CAAC,UAACC,GAAG,EAAK;QAAA,IAAAC,qBAAA,EAAAC,sBAAA;QACrCN,QAAQ,CAACI,GAAG,CAAC,CAACG,WAAW,GAAG,CAAC,GAAAF,qBAAA,GAACR,GAAG,CAACE,IAAI,CAACS,cAAc,cAAAH,qBAAA,gBAAAC,sBAAA,GAAvBD,qBAAA,CAAyBI,WAAW,cAAAH,sBAAA,eAApCA,sBAAA,CAAsCI,QAAQ,CAACN,GAAG,CAAC;MACnF,CAAC,CAAC;MAEFO,oBAAW,CAACC,MAAM,CAACC,GAAG,6DAAAC,MAAA,CACwCjC,SAAS,mBAAAiC,MAAA,CAAgB,IAAAC,UAAA,CAAAvC,OAAA,EACnFwB,QACF,CAAC,CACH,CAAC;MAED,OAAO;QACLA,QAAQ,EAARA,QAAQ;QACRC,UAAU,EAAVA;MACF,CAAC;IACH,CAAC,CAAC;EAAA;EAEN;AACF;AACA;AACA;AACA;EAJE,IAAArB,gBAAA,CAAAJ,OAAA,gCAKuB,UAACwC,YAAoB;IAAA,OAC1CtC,KAAI,CAACD,KAAK,CACPK,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAACiC,IAAI;MACvB/B,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAAC2B,YAAY;MAC/BnB,IAAI,EAAE;QAACoB,MAAM,EAAEH;MAAY;IAC7B,CAAC,CAAC,CACDpB,IAAI,CAAC,UAACC,GAAG,EAAK;MACbc,oBAAW,CAACC,MAAM,CAACC,GAAG,CACpB,6EACF,CAAC;MAED,OAAOhB,GAAG,CAACE,IAAI;IACjB,CAAC,CAAC;EAAA;EA5DJ,IAAI,CAACtB,KAAK,GAAGA,KAAK;AACpB,CAAC;AAAA,IAAA2C,QAAA,GAAAC,OAAA,CAAA7C,OAAA,GA8DYF,mBAAmB"}
1
+ {"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_constants","ReachabilityRequest","_createClass2","default","webex","_this","_classCallCheck2","_defineProperty2","ipVersion","internal","newMetrics","callDiagnosticLatencies","measureLatency","request","method","HTTP_VERBS","GET","shouldRefreshAccessToken","api","API","CALLIOPEDISCOVERY","resource","RESOURCE","CLUSTERS","qs","JCSupport","ipver","then","res","_res$body","body","clusters","joinCookie","_keys","forEach","key","_res$body$clusterClas","_res$body$clusterClas2","isVideoMesh","clusterClasses","hybridMedia","includes","LoggerProxy","logger","log","concat","_stringify","localSDPList","POST","REACHABILITY","offers","_default","exports"],"sources":["request.ts"],"sourcesContent":["import LoggerProxy from '../common/logs/logger-proxy';\nimport {HTTP_VERBS, RESOURCE, API, IP_VERSION} from '../constants';\n\nexport interface ClusterNode {\n isVideoMesh: boolean;\n udp: Array<string>;\n tcp: Array<string>;\n xtls: Array<string>;\n}\n\nexport type ClusterList = {\n [key: string]: ClusterNode;\n};\n\n/**\n * @class ReachabilityRequest\n */\nclass ReachabilityRequest {\n webex: any;\n\n /**\n * Creates an instance of ReachabilityRequest.\n * @param {object} webex\n * @memberof ReachabilityRequest\n */\n constructor(webex: object) {\n this.webex = webex;\n }\n\n /**\n * Gets the cluster information\n *\n * @param {IP_VERSION} ipVersion information about current ip network we're on\n * @returns {Promise}\n */\n getClusters = (ipVersion?: IP_VERSION): Promise<{clusters: ClusterList; joinCookie: any}> =>\n this.webex.internal.newMetrics.callDiagnosticLatencies\n .measureLatency(\n () =>\n this.webex.request({\n method: HTTP_VERBS.GET,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.CLUSTERS,\n qs: {\n JCSupport: 1,\n ipver: ipVersion,\n },\n }),\n 'internal.get.cluster.time'\n )\n .then((res) => {\n const {clusters, joinCookie} = res.body;\n\n Object.keys(clusters).forEach((key) => {\n clusters[key].isVideoMesh = !!res.body.clusterClasses?.hybridMedia?.includes(key);\n });\n\n LoggerProxy.logger.log(\n `Reachability:request#getClusters --> get clusters (ipver=${ipVersion}) successful:${JSON.stringify(\n clusters\n )}`\n );\n\n return {\n clusters,\n joinCookie,\n };\n });\n\n /**\n * gets remote SDP For Clusters\n * @param {Object} localSDPList localSDPs for the cluster\n * @returns {Object}\n */\n remoteSDPForClusters = (localSDPList: object) =>\n this.webex\n .request({\n method: HTTP_VERBS.POST,\n shouldRefreshAccessToken: false,\n api: API.CALLIOPEDISCOVERY,\n resource: RESOURCE.REACHABILITY,\n body: {offers: localSDPList},\n })\n .then((res) => {\n LoggerProxy.logger.log(\n 'Reachability:request#remoteSDPForClusters --> Remote SDPs got succcessfully'\n );\n\n return res.body;\n });\n}\n\nexport default ReachabilityRequest;\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAaA;AACA;AACA;AAFA,IAGME,mBAAmB,oBAAAC,aAAA,CAAAC,OAAA;AAGvB;AACF;AACA;AACA;AACA;AACE,SAAAF,oBAAYG,KAAa,EAAE;EAAA,IAAAC,KAAA;EAAA,IAAAC,gBAAA,CAAAH,OAAA,QAAAF,mBAAA;EAAA,IAAAM,gBAAA,CAAAJ,OAAA;EAI3B;AACF;AACA;AACA;AACA;AACA;EALE,IAAAI,gBAAA,CAAAJ,OAAA,uBAMc,UAACK,SAAsB;IAAA,OACnCH,KAAI,CAACD,KAAK,CAACK,QAAQ,CAACC,UAAU,CAACC,uBAAuB,CACnDC,cAAc,CACb;MAAA,OACEP,KAAI,CAACD,KAAK,CAACS,OAAO,CAAC;QACjBC,MAAM,EAAEC,qBAAU,CAACC,GAAG;QACtBC,wBAAwB,EAAE,KAAK;QAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;QAC1BC,QAAQ,EAAEC,mBAAQ,CAACC,QAAQ;QAC3BC,EAAE,EAAE;UACFC,SAAS,EAAE,CAAC;UACZC,KAAK,EAAElB;QACT;MACF,CAAC,CAAC;IAAA,GACJ,2BACF,CAAC,CACAmB,IAAI,CAAC,UAACC,GAAG,EAAK;MACb,IAAAC,SAAA,GAA+BD,GAAG,CAACE,IAAI;QAAhCC,QAAQ,GAAAF,SAAA,CAARE,QAAQ;QAAEC,UAAU,GAAAH,SAAA,CAAVG,UAAU;MAE3B,IAAAC,KAAA,CAAA9B,OAAA,EAAY4B,QAAQ,CAAC,CAACG,OAAO,CAAC,UAACC,GAAG,EAAK;QAAA,IAAAC,qBAAA,EAAAC,sBAAA;QACrCN,QAAQ,CAACI,GAAG,CAAC,CAACG,WAAW,GAAG,CAAC,GAAAF,qBAAA,GAACR,GAAG,CAACE,IAAI,CAACS,cAAc,cAAAH,qBAAA,gBAAAC,sBAAA,GAAvBD,qBAAA,CAAyBI,WAAW,cAAAH,sBAAA,eAApCA,sBAAA,CAAsCI,QAAQ,CAACN,GAAG,CAAC;MACnF,CAAC,CAAC;MAEFO,oBAAW,CAACC,MAAM,CAACC,GAAG,6DAAAC,MAAA,CACwCrC,SAAS,mBAAAqC,MAAA,CAAgB,IAAAC,UAAA,CAAA3C,OAAA,EACnF4B,QACF,CAAC,CACH,CAAC;MAED,OAAO;QACLA,QAAQ,EAARA,QAAQ;QACRC,UAAU,EAAVA;MACF,CAAC;IACH,CAAC,CAAC;EAAA;EAEN;AACF;AACA;AACA;AACA;EAJE,IAAAzB,gBAAA,CAAAJ,OAAA,gCAKuB,UAAC4C,YAAoB;IAAA,OAC1C1C,KAAI,CAACD,KAAK,CACPS,OAAO,CAAC;MACPC,MAAM,EAAEC,qBAAU,CAACiC,IAAI;MACvB/B,wBAAwB,EAAE,KAAK;MAC/BC,GAAG,EAAEC,cAAG,CAACC,iBAAiB;MAC1BC,QAAQ,EAAEC,mBAAQ,CAAC2B,YAAY;MAC/BnB,IAAI,EAAE;QAACoB,MAAM,EAAEH;MAAY;IAC7B,CAAC,CAAC,CACDpB,IAAI,CAAC,UAACC,GAAG,EAAK;MACbc,oBAAW,CAACC,MAAM,CAACC,GAAG,CACpB,6EACF,CAAC;MAED,OAAOhB,GAAG,CAACE,IAAI;IACjB,CAAC,CAAC;EAAA;EAhEJ,IAAI,CAAC1B,KAAK,GAAGA,KAAK;AACpB,CAAC;AAAA,IAAA+C,QAAA,GAAAC,OAAA,CAAAjD,OAAA,GAkEYF,mBAAmB"}
@@ -62,7 +62,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
62
62
  updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
63
63
  this.set('canManageWebcast', canManageWebcast);
64
64
  },
65
- version: "3.0.0-next.17"
65
+ version: "3.0.0-next.18"
66
66
  });
67
67
  var _default = exports.default = Webinar;
68
68
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -43,13 +43,13 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.0.0-next.17",
47
- "@webex/plugin-rooms": "3.0.0-next.11",
48
- "@webex/test-helper-chai": "3.0.0-next.9",
49
- "@webex/test-helper-mocha": "3.0.0-next.9",
50
- "@webex/test-helper-mock-webex": "3.0.0-next.9",
51
- "@webex/test-helper-retry": "3.0.0-next.9",
52
- "@webex/test-helper-test-users": "3.0.0-next.9",
46
+ "@webex/plugin-meetings": "3.0.0-next.18",
47
+ "@webex/plugin-rooms": "3.0.0-next.12",
48
+ "@webex/test-helper-chai": "3.0.0-next.10",
49
+ "@webex/test-helper-mocha": "3.0.0-next.10",
50
+ "@webex/test-helper-mock-webex": "3.0.0-next.10",
51
+ "@webex/test-helper-retry": "3.0.0-next.10",
52
+ "@webex/test-helper-test-users": "3.0.0-next.10",
53
53
  "chai": "^4.3.4",
54
54
  "chai-as-promised": "^7.1.1",
55
55
  "eslint": "^8.24.0",
@@ -61,20 +61,20 @@
61
61
  "typescript": "^4.7.4"
62
62
  },
63
63
  "dependencies": {
64
- "@webex/common": "3.0.0-next.9",
65
- "@webex/internal-media-core": "2.3.2",
66
- "@webex/internal-plugin-conversation": "3.0.0-next.11",
67
- "@webex/internal-plugin-device": "3.0.0-next.9",
68
- "@webex/internal-plugin-llm": "3.0.0-next.11",
69
- "@webex/internal-plugin-mercury": "3.0.0-next.11",
70
- "@webex/internal-plugin-metrics": "3.0.0-next.9",
71
- "@webex/internal-plugin-support": "3.0.0-next.11",
72
- "@webex/internal-plugin-user": "3.0.0-next.9",
73
- "@webex/internal-plugin-voicea": "3.0.0-next.17",
74
- "@webex/media-helpers": "3.0.1-next.10",
75
- "@webex/plugin-people": "3.0.0-next.11",
76
- "@webex/plugin-rooms": "3.0.0-next.11",
77
- "@webex/webex-core": "3.0.0-next.9",
64
+ "@webex/common": "3.0.0-next.10",
65
+ "@webex/internal-media-core": "2.3.3",
66
+ "@webex/internal-plugin-conversation": "3.0.0-next.12",
67
+ "@webex/internal-plugin-device": "3.0.0-next.10",
68
+ "@webex/internal-plugin-llm": "3.0.0-next.12",
69
+ "@webex/internal-plugin-mercury": "3.0.0-next.12",
70
+ "@webex/internal-plugin-metrics": "3.0.0-next.10",
71
+ "@webex/internal-plugin-support": "3.0.0-next.12",
72
+ "@webex/internal-plugin-user": "3.0.0-next.10",
73
+ "@webex/internal-plugin-voicea": "3.0.0-next.18",
74
+ "@webex/media-helpers": "3.0.1-next.11",
75
+ "@webex/plugin-people": "3.0.0-next.12",
76
+ "@webex/plugin-rooms": "3.0.0-next.12",
77
+ "@webex/webex-core": "3.0.0-next.10",
78
78
  "ampersand-collection": "^2.0.2",
79
79
  "bowser": "^2.11.0",
80
80
  "btoa": "^1.2.1",
@@ -91,5 +91,5 @@
91
91
  "//": [
92
92
  "TODO: upgrade jwt-decode when moving to node 18"
93
93
  ],
94
- "version": "3.0.0-next.17"
94
+ "version": "3.0.0-next.18"
95
95
  }
@@ -34,17 +34,21 @@ class ReachabilityRequest {
34
34
  * @returns {Promise}
35
35
  */
36
36
  getClusters = (ipVersion?: IP_VERSION): Promise<{clusters: ClusterList; joinCookie: any}> =>
37
- this.webex
38
- .request({
39
- method: HTTP_VERBS.GET,
40
- shouldRefreshAccessToken: false,
41
- api: API.CALLIOPEDISCOVERY,
42
- resource: RESOURCE.CLUSTERS,
43
- qs: {
44
- JCSupport: 1,
45
- ipver: ipVersion,
46
- },
47
- })
37
+ this.webex.internal.newMetrics.callDiagnosticLatencies
38
+ .measureLatency(
39
+ () =>
40
+ this.webex.request({
41
+ method: HTTP_VERBS.GET,
42
+ shouldRefreshAccessToken: false,
43
+ api: API.CALLIOPEDISCOVERY,
44
+ resource: RESOURCE.CLUSTERS,
45
+ qs: {
46
+ JCSupport: 1,
47
+ ipver: ipVersion,
48
+ },
49
+ }),
50
+ 'internal.get.cluster.time'
51
+ )
48
52
  .then((res) => {
49
53
  const {clusters, joinCookie} = res.body;
50
54
 
@@ -4,6 +4,7 @@ import MockWebex from '@webex/test-helper-mock-webex';
4
4
  import Meetings from '@webex/plugin-meetings';
5
5
  import ReachabilityRequest from '@webex/plugin-meetings/src/reachability/request';
6
6
  import {IP_VERSION} from '@webex/plugin-meetings/src/constants';
7
+ import {NewMetrics} from '@webex/internal-plugin-metrics';
7
8
 
8
9
 
9
10
  describe('plugin-meetings/reachability', () => {
@@ -14,6 +15,7 @@ describe('plugin-meetings/reachability', () => {
14
15
  webex = new MockWebex({
15
16
  children: {
16
17
  meetings: Meetings,
18
+ newMetrics: NewMetrics
17
19
  },
18
20
  });
19
21
 
@@ -22,19 +24,25 @@ describe('plugin-meetings/reachability', () => {
22
24
  regionCode: 'WEST-COAST',
23
25
  };
24
26
 
25
- webex.internal = {
26
- services: {
27
- get: sinon.mock().returns('locusUrl'),
28
- waitForCatalog: sinon.mock().returns(Promise.resolve({})),
29
- },
27
+ webex.internal.services = {
28
+ get: sinon.mock().returns('locusUrl'),
29
+ waitForCatalog: sinon.mock().returns(Promise.resolve({})),
30
30
  };
31
31
 
32
-
33
32
  reachabilityRequest = new ReachabilityRequest(webex);
34
33
 
35
34
  });
36
35
 
37
36
  describe('#getClusters', () => {
37
+
38
+ beforeEach(() => {
39
+ sinon.spy(webex.internal.newMetrics.callDiagnosticLatencies, 'measureLatency');
40
+ });
41
+
42
+ afterEach(() => {
43
+ sinon.restore();
44
+ });
45
+
38
46
  it('sends a GET request with the correct params', async () => {
39
47
  webex.request = sinon.mock().returns(Promise.resolve({
40
48
  body: {
@@ -49,7 +57,6 @@ describe('plugin-meetings/reachability', () => {
49
57
  }));
50
58
 
51
59
  const res = await reachabilityRequest.getClusters(IP_VERSION.only_ipv4);
52
-
53
60
  const requestParams = webex.request.getCall(0).args[0];
54
61
 
55
62
  assert.equal(requestParams.method, 'GET');
@@ -63,6 +70,7 @@ describe('plugin-meetings/reachability', () => {
63
70
  });
64
71
  assert.deepEqual(res.clusters.clusterId, {udp: "testUDP", isVideoMesh: true})
65
72
  assert.deepEqual(res.joinCookie, {anycastEntryPoint: "aws-eu-west-1"})
73
+ assert.calledOnceWithExactly(webex.internal.newMetrics.callDiagnosticLatencies.measureLatency, sinon.match.func, 'internal.get.cluster.time');
66
74
  });
67
75
  });
68
76
  });