diff --git a/packages/remix/src/server/sdk.ts b/packages/remix/src/server/sdk.ts index 95b2922ddd96..a51f4dd21aba 100644 --- a/packages/remix/src/server/sdk.ts +++ b/packages/remix/src/server/sdk.ts @@ -32,7 +32,7 @@ export function init(options: RemixOptions): NodeClient | undefined { return existingClient; } - options.defaultIntegrations = getRemixDefaultIntegrations(options); + options.defaultIntegrations ??= getRemixDefaultIntegrations(options); const client = nodeInit(options); diff --git a/packages/remix/test/index.server.test.ts b/packages/remix/test/index.server.test.ts index dabba59e4956..7232dc355540 100644 --- a/packages/remix/test/index.server.test.ts +++ b/packages/remix/test/index.server.test.ts @@ -69,4 +69,24 @@ describe('Server init()', () => { it('returns client from init', () => { expect(init({})).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 = init({ 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 = init({ defaultIntegrations: [integration] }); + + expect(client?.getOptions().integrations.map(integration => integration.name)).toEqual([ + 'CustomIntegration', + 'SpanStreaming', + ]); + }); });