From 1fd1fb9c4583e7d1dce6d0399255cbf89031010c Mon Sep 17 00:00:00 2001 From: Nicolas Hrubec Date: Mon, 12 Oct 2026 10:59:52 +0200 Subject: [PATCH] fix(react-router): Respect custom default integrations Co-Authored-By: Codex --- packages/react-router/src/server/sdk.ts | 2 +- packages/react-router/test/server/sdk.test.ts | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/react-router/src/server/sdk.ts b/packages/react-router/src/server/sdk.ts index 63e77a1c7901..83ccc776348a 100644 --- a/packages/react-router/src/server/sdk.ts +++ b/packages/react-router/src/server/sdk.ts @@ -24,7 +24,7 @@ export function getDefaultReactRouterServerIntegrations(options: NodeOptions): I export function init(options: NodeOptions): NodeClient | undefined { const opts: NodeOptions = { ...options, - defaultIntegrations: getDefaultReactRouterServerIntegrations(options), + defaultIntegrations: options.defaultIntegrations ?? getDefaultReactRouterServerIntegrations(options), }; DEBUG_BUILD && debug.log('Initializing SDK...'); diff --git a/packages/react-router/test/server/sdk.test.ts b/packages/react-router/test/server/sdk.test.ts index 4489490dce0b..acc4edd8ad2a 100644 --- a/packages/react-router/test/server/sdk.test.ts +++ b/packages/react-router/test/server/sdk.test.ts @@ -46,6 +46,26 @@ describe('React Router server SDK', () => { expect(client).not.toBeUndefined(); }); + it.each([ + { value: 'false', defaultIntegrations: false as const }, + { value: 'an empty array', defaultIntegrations: [] }, + ])('disables default integrations when set to $value', ({ defaultIntegrations }) => { + const client = reactRouterInit({ defaultIntegrations }); + + expect(client?.getOptions().integrations.map(integration => integration.name)).toEqual(['SpanStreaming']); + }); + + it('replaces default integrations with a custom array', () => { + const integration = { name: 'CustomIntegration' }; + + const client = reactRouterInit({ defaultIntegrations: [integration] }); + + expect(client?.getOptions().integrations.map(integration => integration.name)).toEqual([ + 'CustomIntegration', + 'SpanStreaming', + ]); + }); + it('adds the low quality transactions filter integration by default', () => { const filterSpy = vi.spyOn(LowQualityModule, 'lowQualityTransactionsFilterIntegration');