@webex/internal-plugin-metrics 3.0.0 → 3.1.0-next.2

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 (40) 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 +60 -38
  4. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
  5. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +10 -3
  6. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
  7. package/dist/client-metrics-prelogin-batcher.js +32 -0
  8. package/dist/client-metrics-prelogin-batcher.js.map +1 -0
  9. package/dist/index.js +0 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/metrics.js +10 -25
  12. package/dist/metrics.js.map +1 -1
  13. package/dist/metrics.types.js.map +1 -1
  14. package/dist/new-metrics.js +5 -4
  15. package/dist/new-metrics.js.map +1 -1
  16. package/dist/prelogin-metrics-batcher.js +1 -1
  17. package/dist/prelogin-metrics-batcher.js.map +1 -1
  18. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +41 -8
  19. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +17 -12
  20. package/dist/types/client-metrics-prelogin-batcher.d.ts +2 -0
  21. package/dist/types/index.d.ts +2 -3
  22. package/dist/types/metrics.types.d.ts +3 -1
  23. package/package.json +12 -13
  24. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +89 -13
  25. package/src/call-diagnostic/call-diagnostic-metrics.ts +35 -8
  26. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +17 -3
  27. package/src/client-metrics-prelogin-batcher.ts +26 -0
  28. package/src/index.ts +2 -2
  29. package/src/metrics.js +8 -23
  30. package/src/metrics.types.ts +12 -1
  31. package/src/new-metrics.ts +2 -2
  32. package/src/prelogin-metrics-batcher.ts +1 -1
  33. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +25 -15
  34. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +199 -1
  35. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +155 -41
  36. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +28 -7
  37. package/test/unit/spec/client-metrics-prelogin-batcher.ts +54 -0
  38. package/test/unit/spec/metrics.js +9 -31
  39. package/test/unit/spec/new-metrics.ts +29 -31
  40. package/test/unit/spec/prelogin-metrics-batcher.ts +13 -10
@@ -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
  },
@@ -131,16 +133,16 @@ describe('internal-plugin-metrics', () => {
131
133
  error = err;
132
134
  }
133
135
 
136
+ const calls = webex.logger.error.getCalls();
137
+
138
+ assert.deepEqual(calls[0].args[0], 'Pre Login Metrics -->');
134
139
  // This is horrific, but stubbing lodash is proving difficult
135
- const expectedBatchId = parseInt(uniqueId()) - 1;
136
-
137
- assert.equal(error.message, 'my_error');
138
- assert.calledOnceWithExactly(
139
- webex.logger.error,
140
- 'Pre Login Metrics -->',
141
- `PreLoginMetricsBatcher: @submitHttpRequest#prelogin-ca-batch-${expectedBatchId}. Request failed:`,
142
- `error: formattedError`
140
+ assert.match(
141
+ calls[0].args[1],
142
+ /PreLoginMetricsBatcher: @submitHttpRequest#prelogin-batch-\d{0,}\. Request failed:/
143
143
  );
144
+ assert.deepEqual(calls[0].args[2], `error: formattedError`);
145
+
144
146
  assert.lengthOf(
145
147
  webex.internal.newMetrics.callDiagnosticMetrics.preLoginMetricsBatcher.queue,
146
148
  0
@@ -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