@@ -48,9 +48,11 @@ test.describe('ReportError', () => {
48
48
await getByAriaLabel ( page , 'Send error reports' ) . click ( ) ;
49
49
await expect ( page . getByText ( / U n e x p e c t e d e r r o r / ) ) . toHaveCount ( 0 ) ;
50
50
51
- await page . waitForTimeout ( 2000 ) ;
52
- const errorsAfterReporting = await getPageErrors ( page ) ;
53
- expect ( errorsAfterReporting . length ) . toBe ( 0 ) ;
51
+ await expect
52
+ . poll ( async ( ) => ( await getPageErrors ( page ) ) . length , {
53
+ timeout : 10000 ,
54
+ } )
55
+ . toBe ( 0 ) ;
54
56
} ) ;
55
57
56
58
test ( 'should show Review Error in menu when there is a error in the database' , async ( ) => {
@@ -59,7 +61,7 @@ test.describe('ReportError', () => {
59
61
await window . fuelDB . errors . add ( {
60
62
id : '12345' ,
61
63
error : {
62
- name : 'React error' ,
64
+ name : 'React$ error' ,
63
65
message : 'Test Error' ,
64
66
stack : 'Line error 1' ,
65
67
} ,
@@ -85,8 +87,8 @@ test.describe('ReportError', () => {
85
87
await window . fuelDB . errors . add ( {
86
88
id : '12345' ,
87
89
error : {
88
- name : 'React error' ,
89
- message : 'Test Error' ,
90
+ name : 'React$ error' ,
91
+ message : 'Test$ Error' ,
90
92
stack : 'Line error 1' ,
91
93
} ,
92
94
extra : {
@@ -103,20 +105,24 @@ test.describe('ReportError', () => {
103
105
page . locator ( `[data-key="hasErrors"]` ) . click ( ) ;
104
106
await hasText ( page , / U n e x p e c t e d e r r o r / i) ;
105
107
108
+ expect ( ( await getPageErrors ( page ) ) . length ) . toBe ( 1 ) ;
106
109
// report error
107
110
await getByAriaLabel ( page , 'Ignore error(s)' ) . click ( ) ;
108
111
await expect ( page . getByText ( / U n e x p e c t e d e r r o r / i) ) . toHaveCount ( 0 ) ;
109
112
110
- const errorsAfterReporting = await getPageErrors ( page ) ;
111
- expect ( errorsAfterReporting . length ) . toBe ( 1 ) ;
113
+ await expect
114
+ . poll ( async ( ) => ( await getPageErrors ( page ) ) . length , {
115
+ timeout : 10000 ,
116
+ } )
117
+ . toBe ( 1 ) ;
112
118
} ) ;
113
119
test ( 'should be able to dismiss all errors' , async ( ) => {
114
120
await visit ( page , '/' ) ;
115
121
await page . evaluate ( async ( ) => {
116
122
await window . fuelDB . errors . add ( {
117
123
id : '12345' ,
118
124
error : {
119
- name : 'React error' ,
125
+ name : 'React$ error' ,
120
126
message : 'Test Error' ,
121
127
stack : 'Line error 1' ,
122
128
} ,
@@ -141,16 +147,19 @@ test.describe('ReportError', () => {
141
147
) . click ( ) ;
142
148
await expect ( page . getByText ( / U n e x p e c t e d e r r o r / i) ) . toHaveCount ( 0 ) ;
143
149
144
- const errorsAfterReporting = await getPageErrors ( page ) ;
145
- expect ( errorsAfterReporting . length ) . toBe ( 0 ) ;
150
+ await expect
151
+ . poll ( async ( ) => ( await getPageErrors ( page ) ) . length , {
152
+ timeout : 10000 ,
153
+ } )
154
+ . toBe ( 0 ) ;
146
155
} ) ;
147
156
test ( 'should hide when the single error is dismissed' , async ( ) => {
148
157
await visit ( page , '/' ) ;
149
158
await page . evaluate ( async ( ) => {
150
159
await window . fuelDB . errors . add ( {
151
160
id : '12345' ,
152
161
error : {
153
- name : 'React error' ,
162
+ name : 'React$ error' ,
154
163
message : 'Test Error' ,
155
164
stack : 'Line error 1' ,
156
165
} ,
@@ -172,14 +181,17 @@ test.describe('ReportError', () => {
172
181
await getByAriaLabel ( page , 'Dismiss error' ) . click ( ) ;
173
182
await expect ( page . getByText ( / U n e x p e c t e d e r r o r / i) ) . toHaveCount ( 0 ) ;
174
183
175
- const errorsAfterReporting = await getPageErrors ( page ) ;
176
- expect ( errorsAfterReporting . length ) . toBe ( 0 ) ;
184
+ await expect
185
+ . poll ( async ( ) => ( await getPageErrors ( page ) ) . length , {
186
+ timeout : 10000 ,
187
+ } )
188
+ . toBe ( 0 ) ;
177
189
} ) ;
178
190
test ( 'should detect and capture global errors' , async ( ) => {
179
- await visit ( page , '/' ) ;
180
191
await page . evaluate ( async ( ) => {
181
- console . error ( new Error ( 'Test Error' ) ) ;
192
+ console . error ( new Error ( 'New Error' ) ) ;
182
193
} ) ;
194
+ await visit ( page , '/' ) ;
183
195
await reload ( page ) ;
184
196
await getByAriaLabel ( page , 'Menu' ) . click ( ) ;
185
197
page . locator ( `[data-key="hasErrors"]` ) . click ( ) ;
@@ -195,7 +207,7 @@ test.describe('ReportError', () => {
195
207
await window . fuelDB . errors . add ( {
196
208
id : '12345' ,
197
209
error : {
198
- name : 'React error' ,
210
+ name : 'React$ error' ,
199
211
message : 'Test Error' ,
200
212
stack : 'Line error 1' ,
201
213
} ,
@@ -210,7 +222,7 @@ test.describe('ReportError', () => {
210
222
await window . fuelDB . errors . add ( {
211
223
id : '123456' ,
212
224
error : {
213
- name : 'React error' ,
225
+ name : 'React$ error' ,
214
226
message : 'Test Error' ,
215
227
stack : 'Line error 1' ,
216
228
} ,
@@ -231,4 +243,29 @@ test.describe('ReportError', () => {
231
243
const errorsAfterReporting = await getPageErrors ( page ) ;
232
244
expect ( errorsAfterReporting . length ) . toBe ( 1 ) ;
233
245
} ) ;
246
+ test ( 'should not show ignored errors' , async ( ) => {
247
+ await visit ( page , '/' ) ;
248
+
249
+ await page . evaluate ( async ( ) => {
250
+ await window . fuelDB . errors . add ( {
251
+ id : '12345' ,
252
+ error : {
253
+ name : 'React Error' ,
254
+ message : 'React Error' ,
255
+ stack : 'Line error 1' ,
256
+ } ,
257
+ extra : {
258
+ timestamp : Date . now ( ) ,
259
+ location : 'http://localhost:3000' ,
260
+ pathname : '/' ,
261
+ hash : '#' ,
262
+ counts : 0 ,
263
+ } ,
264
+ } ) ;
265
+ } ) ;
266
+ await getByAriaLabel ( page , 'Menu' ) . click ( ) ;
267
+ expect (
268
+ await page . locator ( `[data-key="hasErrors"]` ) . isVisible ( )
269
+ ) . toBeFalsy ( ) ;
270
+ } ) ;
234
271
} ) ;
0 commit comments