11import { expect } from '@playwright/test' ;
2- import type { ClientReport } from '@sentry/core' ;
32import { sentryTest } from '../../../utils/fixtures' ;
4- import {
5- envelopeRequestParser ,
6- hidePage ,
7- shouldSkipTracingTest ,
8- testingCdnBundle ,
9- waitForClientReportRequest ,
10- } from '../../../utils/helpers' ;
3+ import { shouldSkipTracingTest , testingCdnBundle } from '../../../utils/helpers' ;
4+ import { getSpanOp , waitForStreamedSpan } from '../../../utils/spanUtils' ;
115
126sentryTest (
13- 'records no_parent_span client report for fetch requests without an active span' ,
7+ 'sends http. client span for fetch requests without an active span when span streaming is enabled ' ,
148 async ( { getLocalTestUrl, page } ) => {
159 sentryTest . skip ( shouldSkipTracingTest ( ) || testingCdnBundle ( ) ) ;
1610
@@ -24,22 +18,14 @@ sentryTest(
2418
2519 const url = await getLocalTestUrl ( { testDir : __dirname } ) ;
2620
27- const clientReportPromise = waitForClientReportRequest ( page , report => {
28- return report . discarded_events . some ( e => e . reason === 'no_parent_span' ) ;
29- } ) ;
21+ const spanPromise = waitForStreamedSpan ( page , span => getSpanOp ( span ) === 'http.client' ) ;
3022
3123 await page . goto ( url ) ;
3224
33- await hidePage ( page ) ;
34-
35- const clientReport = envelopeRequestParser < ClientReport > ( await clientReportPromise ) ;
25+ const span = await spanPromise ;
3626
37- expect ( clientReport . discarded_events ) . toEqual ( [
38- {
39- category : 'span' ,
40- quantity : 1 ,
41- reason : 'no_parent_span' ,
42- } ,
43- ] ) ;
27+ expect ( span . name ) . toMatch ( / ^ G E T / ) ;
28+ expect ( span . attributes ?. [ 'sentry.origin' ] ) . toEqual ( { type : 'string' , value : 'auto.http.browser' } ) ;
29+ expect ( span . attributes ?. [ 'sentry.op' ] ) . toEqual ( { type : 'string' , value : 'http.client' } ) ;
4430 } ,
4531) ;
0 commit comments