From 99bd218ce4735ad17493d009e559269a7a11a194 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Thu, 26 Aug 2021 11:28:32 -0400 Subject: [PATCH] Make sure option is set correctly --- .../tracing/src/browser/browsertracing.ts | 2 +- .../test/browser/browsertracing.test.ts | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/packages/tracing/src/browser/browsertracing.ts b/packages/tracing/src/browser/browsertracing.ts index 751e342d85a6..803fa8934457 100644 --- a/packages/tracing/src/browser/browsertracing.ts +++ b/packages/tracing/src/browser/browsertracing.ts @@ -149,7 +149,7 @@ export class BrowserTracing implements Integration { tracingOrigins, }; - this._metrics = new MetricsInstrumentation({ ...this.options._metricOptions, ...DEFAULT_METRICS_INSTR_OPTIONS }); + this._metrics = new MetricsInstrumentation({ ...DEFAULT_METRICS_INSTR_OPTIONS, ...this.options._metricOptions }); } /** diff --git a/packages/tracing/test/browser/browsertracing.test.ts b/packages/tracing/test/browser/browsertracing.test.ts index 7c7d1d6306cc..bc94f7ed73bb 100644 --- a/packages/tracing/test/browser/browsertracing.test.ts +++ b/packages/tracing/test/browser/browsertracing.test.ts @@ -11,6 +11,7 @@ import { getHeaderContext, getMetaContent, } from '../../src/browser/browsertracing'; +import { DEFAULT_METRICS_INSTR_OPTIONS, MetricsInstrumentation } from '../../src/browser/metrics'; import { defaultRequestInstrumentationOptions } from '../../src/browser/request'; import { instrumentRoutingWithDefaults } from '../../src/browser/router'; import * as hubExtensions from '../../src/hubextensions'; @@ -32,6 +33,8 @@ jest.mock('@sentry/utils', () => { }; }); +jest.mock('../../src/browser/metrics'); + const { logger } = jest.requireActual('@sentry/utils'); const warnSpy = jest.spyOn(logger, 'warn'); @@ -493,4 +496,31 @@ describe('BrowserTracing', () => { ); }); }); + + describe('metrics', () => { + beforeEach(() => { + // @ts-ignore mock clear + MetricsInstrumentation.mockClear(); + }); + + it('creates metrics instrumentation', () => { + createBrowserTracing(true, {}); + + expect(MetricsInstrumentation).toHaveBeenCalledTimes(1); + expect(MetricsInstrumentation).toHaveBeenLastCalledWith(DEFAULT_METRICS_INSTR_OPTIONS); + }); + + it('creates metrics instrumentation with custom options', () => { + createBrowserTracing(true, { + _metricOptions: { + _reportAllChanges: true, + }, + }); + + expect(MetricsInstrumentation).toHaveBeenCalledTimes(1); + expect(MetricsInstrumentation).toHaveBeenLastCalledWith({ + _reportAllChanges: true, + }); + }); + }); });