@@ -39,24 +39,25 @@ sentryTest('should capture feedback (@sentry-internal/feedback import)', async (
39
39
40
40
const [ , , replayReq0 ] = await Promise . all ( [ page . goto ( url ) , page . getByText ( 'Report a Bug' ) . click ( ) , reqPromise0 ] ) ;
41
41
42
+ // Inputs are slow, these need to be serial
42
43
await page . locator ( '[name="name"]' ) . fill ( 'Jane Doe' ) ;
43
44
await page . locator ( '[name="email"]' ) . fill ( '[email protected] ' ) ;
44
45
await page . locator ( '[name="message"]' ) . fill ( 'my example feedback' ) ;
45
46
46
- const [ , feedbackResp , replayReq1 ] = await Promise . all ( [ page . getByLabel ( 'Send Bug Report' ) . click ( ) , feedbackRequestPromise , reqPromise1 ] ) ;
47
+ // Force flush here, as inputs are slow and can cause click event to be in unpredictable segments
48
+ await Promise . all ( [
49
+ forceFlushReplay ( ) ,
50
+ reqPromise1 ,
51
+ ] ) ;
52
+
53
+ const [ , feedbackResp , replayReq2 ] = await Promise . all ( [ page . getByLabel ( 'Send Bug Report' ) . click ( ) , feedbackRequestPromise , reqPromise2 ] ) ;
47
54
48
55
const feedbackEvent = envelopeRequestParser ( feedbackResp . request ( ) ) ;
49
56
const replayEvent = getReplayEvent ( replayReq0 ) ;
50
57
// Feedback breadcrumb is on second segment because we flush when "Report a Bug" is clicked
51
58
// And then the breadcrumb is sent when feedback form is submitted
52
- const { breadcrumbs } = getCustomRecordingEvents ( replayReq1 ) ;
53
-
59
+ const { breadcrumbs } = getCustomRecordingEvents ( replayReq2 ) ;
54
60
55
- if ( breadcrumbs . length === 0 ) {
56
- console . log ( getReplayEvent ( replayReq0 ) , getReplayEvent ( replayReq1 ) ) ;
57
- console . log ( getCustomRecordingEvents ( replayReq0 ) , getCustomRecordingEvents ( replayReq1 ) ) ;
58
- console . log ( getCustomRecordingEvents ( await reqPromise2 ) ) ;
59
- }
60
61
61
62
expect ( breadcrumbs ) . toEqual (
62
63
expect . arrayContaining ( [
0 commit comments