diff --git a/src/internal/base-component/__tests__/metrics.test.ts b/src/internal/base-component/__tests__/metrics.test.ts index df42281..417a473 100644 --- a/src/internal/base-component/__tests__/metrics.test.ts +++ b/src/internal/base-component/__tests__/metrics.test.ts @@ -222,6 +222,17 @@ describe('Client Metrics support', () => { }); }); + test('supports string, number and boolean details', () => { + metrics.sendOpsMetricObject('awsui-ops-demo', { count: 1, value: 'a', enabled: true }); + expect(window.panorama).toHaveBeenCalledWith('trackCustomEvent', { + eventType: 'awsui', + eventContext: 'awsui-ops-demo', + eventDetail: '{"o":"main","t":"default","f":"react","v":"1.0","count":1,"value":"a","enabled":true}', + eventValue: '1', + timestamp: expect.any(Number), + }); + }); + test('deduplicates metrics with same details', () => { metrics.sendOpsMetricObject('awsui-ops-demo', { foo: 'something' }); metrics.sendOpsMetricObject('awsui-ops-demo', { foo: 'something' }); diff --git a/src/internal/base-component/metrics/metrics.ts b/src/internal/base-component/metrics/metrics.ts index 766c6ed..6b00df1 100644 --- a/src/internal/base-component/metrics/metrics.ts +++ b/src/internal/base-component/metrics/metrics.ts @@ -51,7 +51,7 @@ export class Metrics { this.panorama.sendMetric(metric); } - sendOpsMetricObject(metricName: string, detail: Record) { + sendOpsMetricObject(metricName: string, detail: Record) { this.sendMetricOnce(metricName, 1, buildMetricDetail(detail, this.context)); }