1
1
import { conditionalTest } from '../../utils' ;
2
2
import { cleanupChildProcesses , createRunner } from '../../utils/runner' ;
3
3
4
- const EXPECTED_ANR_EVENT = {
4
+ const ANR_EVENT = {
5
5
// Ensure we have context
6
6
contexts : {
7
7
trace : {
@@ -21,15 +21,6 @@ const EXPECTED_ANR_EVENT = {
21
21
timezone : expect . any ( String ) ,
22
22
} ,
23
23
} ,
24
- user : {
25
-
26
- } ,
27
- breadcrumbs : [
28
- {
29
- timestamp : expect . any ( Number ) ,
30
- message : 'important message!' ,
31
- } ,
32
- ] ,
33
24
// and an exception that is our ANR
34
25
exception : {
35
26
values : [
@@ -60,24 +51,41 @@ const EXPECTED_ANR_EVENT = {
60
51
} ,
61
52
} ;
62
53
54
+ const ANR_EVENT_WITH_SCOPE = {
55
+ ...ANR_EVENT ,
56
+ user : {
57
+
58
+ } ,
59
+ breadcrumbs : [
60
+ {
61
+ timestamp : expect . any ( Number ) ,
62
+ message : 'important message!' ,
63
+ } ,
64
+ ] ,
65
+ } ;
66
+
63
67
conditionalTest ( { min : 16 } ) ( 'should report ANR when event loop blocked' , ( ) => {
64
68
afterAll ( ( ) => {
65
69
cleanupChildProcesses ( ) ;
66
70
} ) ;
67
71
68
72
test ( 'CJS' , done => {
69
- createRunner ( __dirname , 'basic.js' ) . withMockSentryServer ( ) . expect ( { event : EXPECTED_ANR_EVENT } ) . start ( done ) ;
73
+ createRunner ( __dirname , 'basic.js' ) . withMockSentryServer ( ) . expect ( { event : ANR_EVENT_WITH_SCOPE } ) . start ( done ) ;
70
74
} ) ;
71
75
72
76
test ( 'ESM' , done => {
73
- createRunner ( __dirname , 'basic.mjs' ) . withMockSentryServer ( ) . expect ( { event : EXPECTED_ANR_EVENT } ) . start ( done ) ;
77
+ createRunner ( __dirname , 'basic.mjs' ) . withMockSentryServer ( ) . expect ( { event : ANR_EVENT_WITH_SCOPE } ) . start ( done ) ;
78
+ } ) ;
79
+
80
+ test ( 'blocked indefinitely' , done => {
81
+ createRunner ( __dirname , 'indefinite.mjs' ) . withMockSentryServer ( ) . expect ( { event : ANR_EVENT } ) . start ( done ) ;
74
82
} ) ;
75
83
76
84
test ( 'With --inspect' , done => {
77
85
createRunner ( __dirname , 'basic.mjs' )
78
86
. withMockSentryServer ( )
79
87
. withFlags ( '--inspect' )
80
- . expect ( { event : EXPECTED_ANR_EVENT } )
88
+ . expect ( { event : ANR_EVENT_WITH_SCOPE } )
81
89
. start ( done ) ;
82
90
} ) ;
83
91
@@ -108,16 +116,16 @@ conditionalTest({ min: 16 })('should report ANR when event loop blocked', () =>
108
116
abnormal_mechanism : 'anr_foreground' ,
109
117
} ,
110
118
} )
111
- . expect ( { event : EXPECTED_ANR_EVENT } )
119
+ . expect ( { event : ANR_EVENT_WITH_SCOPE } )
112
120
. start ( done ) ;
113
121
} ) ;
114
122
115
123
test ( 'from forked process' , done => {
116
- createRunner ( __dirname , 'forker.js' ) . expect ( { event : EXPECTED_ANR_EVENT } ) . start ( done ) ;
124
+ createRunner ( __dirname , 'forker.js' ) . expect ( { event : ANR_EVENT_WITH_SCOPE } ) . start ( done ) ;
117
125
} ) ;
118
126
119
127
test ( 'worker can be stopped and restarted' , done => {
120
- createRunner ( __dirname , 'stop-and-start.js' ) . expect ( { event : EXPECTED_ANR_EVENT } ) . start ( done ) ;
128
+ createRunner ( __dirname , 'stop-and-start.js' ) . expect ( { event : ANR_EVENT_WITH_SCOPE } ) . start ( done ) ;
121
129
} ) ;
122
130
123
131
const EXPECTED_ISOLATED_EVENT = {
0 commit comments