@webex/internal-plugin-metrics 3.0.0-next.1 → 3.0.0-next.10

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.
Files changed (31) hide show
  1. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +90 -14
  2. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -1
  3. package/dist/call-diagnostic/call-diagnostic-metrics.js +38 -29
  4. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
  5. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +8 -1
  6. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/metrics.js +5 -1
  9. package/dist/metrics.js.map +1 -1
  10. package/dist/metrics.types.js.map +1 -1
  11. package/dist/new-metrics.js +5 -4
  12. package/dist/new-metrics.js.map +1 -1
  13. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +41 -8
  14. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +8 -10
  15. package/dist/types/index.d.ts +2 -2
  16. package/dist/types/metrics.types.d.ts +3 -1
  17. package/package.json +13 -13
  18. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +89 -13
  19. package/src/call-diagnostic/call-diagnostic-metrics.ts +13 -0
  20. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +8 -1
  21. package/src/index.ts +2 -0
  22. package/src/metrics.js +3 -0
  23. package/src/metrics.types.ts +12 -1
  24. package/src/new-metrics.ts +2 -2
  25. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +18 -7
  26. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +199 -1
  27. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +119 -24
  28. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +11 -2
  29. package/test/unit/spec/metrics.js +8 -0
  30. package/test/unit/spec/new-metrics.ts +29 -31
  31. package/test/unit/spec/prelogin-metrics-batcher.ts +5 -2
@@ -301,6 +301,12 @@ describe('internal-plugin-metrics', () => {
301
301
 
302
302
  [
303
303
  ['client.exit.app', {}],
304
+ ['client.login.end', {
305
+ joinTimes: {
306
+ otherAppApiReqResp: undefined,
307
+ exchangeCITokenJMT: undefined,
308
+ }
309
+ }],
304
310
  ['client.webexapp.launched', {
305
311
  joinTimes: {
306
312
  downloadTime: undefined,
@@ -312,6 +318,8 @@ describe('internal-plugin-metrics', () => {
312
318
  joinTimes: {
313
319
  clickToInterstitial: undefined,
314
320
  meetingInfoReqResp: undefined,
321
+ refreshCaptchaServiceReqResp: undefined,
322
+ downloadIntelligenceModelsReqResp: undefined,
315
323
  },
316
324
  },
317
325
  ],
@@ -322,6 +330,8 @@ describe('internal-plugin-metrics', () => {
322
330
  showInterstitialTime: undefined,
323
331
  meetingInfoReqResp: undefined,
324
332
  registerWDMDeviceJMT: undefined,
333
+ getU2CTime: undefined,
334
+ getReachabilityClustersReqResp: undefined,
325
335
  },
326
336
  },
327
337
  ],
@@ -332,13 +342,12 @@ describe('internal-plugin-metrics', () => {
332
342
  meetingInfoReqResp: undefined,
333
343
  callInitJoinReq: undefined,
334
344
  joinReqResp: undefined,
335
- joinReqSentReceived: undefined,
336
345
  pageJmt: undefined,
337
346
  clickToInterstitial: undefined,
338
347
  interstitialToJoinOK: undefined,
339
348
  totalJmt: undefined,
340
349
  clientJmt: undefined,
341
- downloadTime: undefined
350
+ downloadTime: undefined,
342
351
  },
343
352
  },
344
353
  ],
@@ -104,6 +104,13 @@ describe('plugin-metrics', () => {
104
104
  };
105
105
  webex.config.metrics.type = ['operational'];
106
106
  webex.config.metrics.appType = 'sdk';
107
+ webex.meetings = {
108
+ config: {
109
+ metrics: {
110
+ clientVersion: '43.0.105'
111
+ }
112
+ }
113
+ }
107
114
 
108
115
  sinon.spy(webex, 'request');
109
116
  sinon.spy(metrics, 'postPreLoginMetric');
@@ -180,6 +187,7 @@ describe('plugin-metrics', () => {
180
187
  },
181
188
  metricName: 'test',
182
189
  tags: {
190
+ appVersion: '43.0.105',
183
191
  browser: '',
184
192
  domain: 'whatever',
185
193
  os: 'other',
@@ -1,29 +1,31 @@
1
1
  import {assert} from '@webex/test-helper-chai';
2
- import {NewMetrics} from '@webex/internal-plugin-metrics';
2
+ import {NewMetrics, CallDiagnosticLatencies} from '@webex/internal-plugin-metrics';
3
3
  import MockWebex from '@webex/test-helper-mock-webex';
4
4
  import sinon from 'sinon';
5
5
  import {Utils} from '@webex/internal-plugin-metrics';
6
6
 
7
7
  describe('internal-plugin-metrics', () => {
8
8
 
9
+ const mockWebex = () => new MockWebex({
10
+ children: {
11
+ newMetrics: NewMetrics,
12
+ },
13
+ meetings: {
14
+ meetingCollection: {
15
+ get: sinon.stub(),
16
+ },
17
+ },
18
+ request: sinon.stub().resolves({}),
19
+ logger: {
20
+ log: sinon.stub(),
21
+ error: sinon.stub(),
22
+ }
23
+ });
24
+
9
25
  describe('check submitClientEvent when webex is not ready', () => {
10
26
  let webex;
11
27
  //@ts-ignore
12
- webex = new MockWebex({
13
- children: {
14
- newMetrics: NewMetrics,
15
- },
16
- meetings: {
17
- meetingCollection: {
18
- get: sinon.stub(),
19
- },
20
- },
21
- request: sinon.stub().resolves({}),
22
- logger: {
23
- log: sinon.stub(),
24
- error: sinon.stub(),
25
- }
26
- });
28
+ webex = mockWebex();
27
29
 
28
30
  it('checks the log', () => {
29
31
  webex.internal.newMetrics.submitClientEvent({
@@ -38,26 +40,22 @@ describe('internal-plugin-metrics', () => {
38
40
  );
39
41
  });
40
42
  });
43
+
44
+ describe('new-metrics contstructor', () => {
45
+ it('checks callDiagnosticLatencies is defined before ready emit', () => {
46
+
47
+ const webex = mockWebex();
48
+
49
+ assert.instanceOf(webex.internal.newMetrics.callDiagnosticLatencies, CallDiagnosticLatencies);
50
+ });
51
+ });
52
+
41
53
  describe('new-metrics', () => {
42
54
  let webex;
43
55
 
44
56
  beforeEach(() => {
45
57
  //@ts-ignore
46
- webex = new MockWebex({
47
- children: {
48
- newMetrics: NewMetrics,
49
- },
50
- meetings: {
51
- meetingCollection: {
52
- get: sinon.stub(),
53
- },
54
- },
55
- request: sinon.stub().resolves({}),
56
- logger: {
57
- log: sinon.stub(),
58
- error: sinon.stub(),
59
- }
60
- });
58
+ webex = mockWebex();
61
59
 
62
60
  webex.emit('ready');
63
61
 
@@ -74,6 +74,8 @@ describe('internal-plugin-metrics', () => {
74
74
  joinTimes: {
75
75
  meetingInfoReqResp: undefined,
76
76
  clickToInterstitial: undefined,
77
+ refreshCaptchaServiceReqResp: undefined,
78
+ downloadIntelligenceModelsReqResp: undefined,
77
79
  },
78
80
  name: 'client.interstitial-window.launched',
79
81
  },
@@ -148,7 +150,8 @@ describe('internal-plugin-metrics', () => {
148
150
  });
149
151
 
150
152
  it('fails if preLoinId is not set', async () => {
151
- webex.internal.newMetrics.callDiagnosticMetrics.preLoginMetricsBatcher.preLoginId = undefined;
153
+ webex.internal.newMetrics.callDiagnosticMetrics.preLoginMetricsBatcher.preLoginId =
154
+ undefined;
152
155
 
153
156
  const promise =
154
157
  webex.internal.newMetrics.callDiagnosticMetrics.submitToCallDiagnosticsPreLogin(
@@ -176,7 +179,7 @@ describe('internal-plugin-metrics', () => {
176
179
 
177
180
  describe('prepareItem', () => {
178
181
  it('calls prepareDiagnosticMetricItem correctly', async () => {
179
- // avoid setting .sent timestamp
182
+ // avoid setting .sent timestamp
180
183
  webex.internal.newMetrics.callDiagnosticMetrics.preLoginMetricsBatcher.prepareRequest = (q) =>
181
184
  Promise.resolve(q);
182
185