Skip to content

Commit 65ebc62

Browse files
committed
Adjust @sentry/node unit tests
1 parent 7450622 commit 65ebc62

File tree

2 files changed

+28
-11
lines changed

2 files changed

+28
-11
lines changed

packages/node/test/helpers/mockSdkInit.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { context, propagation, ProxyTracerProvider, trace } from '@opentelemetry/api';
2-
import { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
2+
import { type SpanProcessor, BasicTracerProvider } from '@opentelemetry/sdk-trace-base';
33
import { getClient, getCurrentScope, getGlobalScope, getIsolationScope } from '@sentry/core';
4+
import { SentrySpanProcessor } from '@sentry/opentelemetry';
45
import type { NodeClient } from '../../src';
56
import { init } from '../../src/sdk';
67
import type { NodeClientOptions } from '../../src/types';
@@ -42,6 +43,30 @@ export function cleanupOtel(_provider?: BasicTracerProvider): void {
4243
propagation.disable();
4344
}
4445

46+
export function getSpanProcessor(): SentrySpanProcessor | undefined {
47+
const client = getClient<NodeClient>();
48+
if (!client?.traceProvider) {
49+
return undefined;
50+
}
51+
52+
const provider = getProvider(client.traceProvider);
53+
if (!provider) {
54+
return undefined;
55+
}
56+
57+
// Access the span processors from the provider via _activeSpanProcessor
58+
// Casted as any because _activeSpanProcessor is marked as readonly
59+
const multiSpanProcessor = (provider as any)._activeSpanProcessor as
60+
| (SpanProcessor & { _spanProcessors?: SpanProcessor[] })
61+
| undefined;
62+
63+
const spanProcessor = multiSpanProcessor?.['_spanProcessors']?.find(
64+
(spanProcessor: SpanProcessor) => spanProcessor instanceof SentrySpanProcessor,
65+
) as SentrySpanProcessor | undefined;
66+
67+
return spanProcessor;
68+
}
69+
4570
export function getProvider(_provider?: BasicTracerProvider): BasicTracerProvider | undefined {
4671
let provider = _provider || getClient<NodeClient>()?.traceProvider || trace.getTracerProvider();
4772

packages/node/test/integration/transactions.test.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import { context, trace, TraceFlags } from '@opentelemetry/api';
2-
import type { SpanProcessor } from '@opentelemetry/sdk-trace-base';
32
import type { TransactionEvent } from '@sentry/core';
43
import { debug, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '@sentry/core';
5-
import { SentrySpanProcessor } from '@sentry/opentelemetry';
64
import { afterEach, describe, expect, it, vi } from 'vitest';
75
import * as Sentry from '../../src';
8-
import { cleanupOtel, getProvider, mockSdkInit } from '../helpers/mockSdkInit';
6+
import { cleanupOtel, getSpanProcessor, mockSdkInit } from '../helpers/mockSdkInit';
97

108
describe('Integration | Transactions', () => {
119
afterEach(() => {
@@ -562,13 +560,7 @@ describe('Integration | Transactions', () => {
562560

563561
mockSdkInit({ tracesSampleRate: 1, beforeSendTransaction });
564562

565-
const provider = getProvider();
566-
const multiSpanProcessor = provider?.activeSpanProcessor as
567-
| (SpanProcessor & { _spanProcessors?: SpanProcessor[] })
568-
| undefined;
569-
const spanProcessor = multiSpanProcessor?.['_spanProcessors']?.find(
570-
spanProcessor => spanProcessor instanceof SentrySpanProcessor,
571-
) as SentrySpanProcessor | undefined;
563+
const spanProcessor = getSpanProcessor();
572564

573565
const exporter = spanProcessor ? spanProcessor['_exporter'] : undefined;
574566

0 commit comments

Comments
 (0)