diff --git a/packages/@webex/webex-core/src/lib/metrics.js b/packages/@webex/webex-core/src/lib/metrics.js index e81dde7cfc9..2cb3dfb6bcb 100644 --- a/packages/@webex/webex-core/src/lib/metrics.js +++ b/packages/@webex/webex-core/src/lib/metrics.js @@ -1,4 +1,5 @@ // Metrics for service catalog export default { JS_SDK_SERVICE_NOT_FOUND: 'JS_SDK_SERVICE_NOT_FOUND', + SERVICE_V2_INITIALIZED: 'SERVICE_V2_INITIALIZED', }; diff --git a/packages/@webex/webex-core/src/lib/services-v2/metrics.ts b/packages/@webex/webex-core/src/lib/services-v2/metrics.ts index e81dde7cfc9..2cb3dfb6bcb 100644 --- a/packages/@webex/webex-core/src/lib/services-v2/metrics.ts +++ b/packages/@webex/webex-core/src/lib/services-v2/metrics.ts @@ -1,4 +1,5 @@ // Metrics for service catalog export default { JS_SDK_SERVICE_NOT_FOUND: 'JS_SDK_SERVICE_NOT_FOUND', + SERVICE_V2_INITIALIZED: 'SERVICE_V2_INITIALIZED', }; diff --git a/packages/@webex/webex-core/src/lib/services-v2/services-v2.ts b/packages/@webex/webex-core/src/lib/services-v2/services-v2.ts index 56b0e6f999d..c9b8afab26a 100644 --- a/packages/@webex/webex-core/src/lib/services-v2/services-v2.ts +++ b/packages/@webex/webex-core/src/lib/services-v2/services-v2.ts @@ -1080,6 +1080,12 @@ const Services = WebexPlugin.extend({ this.initServiceCatalogs() .then(() => { catalog.isReady = true; + this.webex.internal.metrics.submitClientMetrics(METRICS.SERVICE_V2_INITIALIZED, { + fields: { + type: 'operational', + initialized_status: 'succeeded', + }, + }); }) .catch((error) => { this.initFailed = true; diff --git a/packages/@webex/webex-core/test/unit/spec/services-v2/services-v2.ts b/packages/@webex/webex-core/test/unit/spec/services-v2/services-v2.ts index 7ef8de9000c..6c1e4108b77 100644 --- a/packages/@webex/webex-core/test/unit/spec/services-v2/services-v2.ts +++ b/packages/@webex/webex-core/test/unit/spec/services-v2/services-v2.ts @@ -42,20 +42,21 @@ describe('webex-core', () => { access_token: 'token', }, }; + webex.internal.metrics.submitClientMetrics = sinon.stub(); services.initialize(); // call the onReady callback services.listenToOnce.getCall(1).args[2](); await waitForAsync(); - + assert.isFalse(services.initFailed); + }); it('initFailed is false when initialization succeeds no credentials are available', async () => { services.listenToOnce = sinon.stub(); services.collectPreauthCatalog = sinon.stub().returns(Promise.resolve()); - services.initialize(); // call the onReady callback