Skip to content

Commit 67c01ae

Browse files
test(e2e): Pair TanStack Start Cloudflare pageload with its server span
Co-Authored-By: Cursor Grok 4.6 <cursoragent@cursor.com>
1 parent 51714ad commit 67c01ae

1 file changed

Lines changed: 21 additions & 10 deletions

File tree

‎dev-packages/e2e-tests/test-applications/tanstackstart-react-cloudflare/tests/trace-propagation.test.ts‎

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect, test } from '@playwright/test';
2-
import { getSpanOp, waitForStreamedSpan } from '@sentry-internal/test-utils';
2+
import { collectStreamedSpans, getSpanOp } from '@sentry-internal/test-utils';
33

44
test.describe('Trace propagation', () => {
55
test('should inject metatags in ssr pageload', async ({ page }) => {
@@ -18,19 +18,30 @@ test.describe('Trace propagation', () => {
1818
});
1919

2020
test('should have trace connection between server and client', async ({ page }) => {
21-
const serverSpanPromise = waitForStreamedSpan('tanstackstart-react-cloudflare', span => {
22-
return span.is_segment && getSpanOp(span) === 'http.server' && span.attributes['url.path']?.value === '/';
23-
});
24-
25-
const clientSpanPromise = waitForStreamedSpan('tanstackstart-react-cloudflare', span => {
26-
return span.is_segment && getSpanOp(span) === 'pageload' && span.name === '/';
21+
const spansPromise = collectStreamedSpans('tanstackstart-react-cloudflare', spans => {
22+
return (
23+
spans.some(
24+
span => span.is_segment && getSpanOp(span) === 'http.server' && span.attributes['url.path']?.value === '/',
25+
) &&
26+
spans.some(
27+
span =>
28+
span.is_segment &&
29+
getSpanOp(span) === 'pageload' &&
30+
(span.name === '/' || span.attributes['url.path']?.value === '/'),
31+
)
32+
);
2733
});
2834

2935
await page.goto('/');
3036

31-
const serverSpan = await serverSpanPromise;
32-
const clientSpan = await clientSpanPromise;
37+
const spans = await spansPromise;
38+
const serverSpan = spans.find(
39+
span => span.is_segment && getSpanOp(span) === 'http.server' && span.attributes['url.path']?.value === '/',
40+
);
41+
const clientSpan = spans.find(span => span.is_segment && getSpanOp(span) === 'pageload');
3342

34-
expect(clientSpan.trace_id).toBe(serverSpan.trace_id);
43+
expect(serverSpan).toBeDefined();
44+
expect(clientSpan).toBeDefined();
45+
expect(clientSpan?.trace_id).toBe(serverSpan?.trace_id);
3546
});
3647
});

0 commit comments

Comments
 (0)