1
1
/* eslint-disable @typescript-eslint/no-use-before-define */
2
2
import { jest , describe , test , expect } from '@jest/globals'
3
3
import { createRenderStream } from '@testing-library/react-render-stream'
4
- import { userEvent } from '@testing-library/user-event'
4
+ // import {userEvent} from '@testing-library/user-event'
5
5
import * as React from 'react'
6
6
import { ErrorBoundary } from 'react-error-boundary'
7
7
import { getExpectErrorMessage } from '../../__testHelpers__/getCleanedErrorMessage.js'
8
8
9
+ // @ts -expect-error this is not defined anywhere
10
+ globalThis . IS_REACT_ACT_ENVIRONMENT = false
11
+
12
+ async function click ( element : HTMLElement ) {
13
+ const opts = { bubbles : true , cancelable : true , buttons : 1 }
14
+ element . dispatchEvent ( new Event ( 'mousedown' , opts ) )
15
+ await new Promise ( r => setTimeout ( r , 50 ) )
16
+ element . dispatchEvent ( new Event ( 'mouseup' , opts ) )
17
+ element . dispatchEvent ( new Event ( 'click' , opts ) )
18
+ }
19
+
9
20
function CounterForm ( {
10
21
value,
11
22
onIncrement,
@@ -39,14 +50,14 @@ describe('snapshotDOM', () => {
39
50
snapshotDOM : true ,
40
51
} )
41
52
const utils = render ( < Counter /> )
42
- const incrementButton = utils . getByText ( 'Increment' )
43
- await userEvent . click ( incrementButton )
44
- await userEvent . click ( incrementButton )
45
53
{
46
54
const { withinDOM} = await takeRender ( )
47
55
const input = withinDOM ( ) . getByLabelText < HTMLInputElement > ( 'Value' )
48
56
expect ( input . value ) . toBe ( '0' )
49
57
}
58
+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
59
+ await click ( incrementButton )
60
+ await click ( incrementButton )
50
61
{
51
62
const { withinDOM} = await takeRender ( )
52
63
// a one-off to test that `queryBy` works and accepts a type argument
@@ -76,7 +87,7 @@ describe('snapshotDOM', () => {
76
87
const { withinDOM} = await takeRender ( )
77
88
const snapshotIncrementButton = withinDOM ( ) . getByText ( 'Increment' )
78
89
try {
79
- await userEvent . click ( snapshotIncrementButton )
90
+ await click ( snapshotIncrementButton )
80
91
} catch ( error ) {
81
92
expect ( error ) . toMatchInlineSnapshot ( `
82
93
[Error: Uncaught [Error:
@@ -130,13 +141,13 @@ describe('replaceSnapshot', () => {
130
141
value : number
131
142
} > ( )
132
143
const utils = render ( < Counter /> )
133
- const incrementButton = utils . getByText ( 'Increment' )
134
- await userEvent . click ( incrementButton )
135
- await userEvent . click ( incrementButton )
136
144
{
137
145
const { snapshot} = await takeRender ( )
138
146
expect ( snapshot ) . toEqual ( { value : 0 } )
139
147
}
148
+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
149
+ await click ( incrementButton )
150
+ await click ( incrementButton )
140
151
{
141
152
const { snapshot} = await takeRender ( )
142
153
expect ( snapshot ) . toEqual ( { value : 1 } )
@@ -160,13 +171,14 @@ describe('replaceSnapshot', () => {
160
171
initialSnapshot : { unrelatedValue : 'unrelated' , value : - 1 } ,
161
172
} )
162
173
const utils = render ( < Counter /> )
163
- const incrementButton = utils . getByText ( 'Increment' )
164
- await userEvent . click ( incrementButton )
165
- await userEvent . click ( incrementButton )
166
174
{
167
175
const { snapshot} = await takeRender ( )
168
176
expect ( snapshot ) . toEqual ( { unrelatedValue : 'unrelated' , value : 0 } )
169
177
}
178
+
179
+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
180
+ await click ( incrementButton )
181
+ await click ( incrementButton )
170
182
{
171
183
const { snapshot} = await takeRender ( )
172
184
expect ( snapshot ) . toEqual ( { unrelatedValue : 'unrelated' , value : 1 } )
@@ -203,6 +215,8 @@ describe('replaceSnapshot', () => {
203
215
< Counter />
204
216
</ ErrorBoundary > ,
205
217
)
218
+ await new Promise ( r => setTimeout ( r , 10 ) )
219
+
206
220
spy . mockRestore ( )
207
221
208
222
expect ( caughtError ! ) . toMatchInlineSnapshot (
@@ -231,10 +245,11 @@ describe('onRender', () => {
231
245
} ,
232
246
} )
233
247
const utils = render ( < Counter /> )
234
- const incrementButton = utils . getByText ( 'Increment' )
235
- await userEvent . click ( incrementButton )
236
- await userEvent . click ( incrementButton )
237
248
await takeRender ( )
249
+
250
+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
251
+ await click ( incrementButton )
252
+ await click ( incrementButton )
238
253
await takeRender ( )
239
254
await takeRender ( )
240
255
} )
@@ -254,10 +269,10 @@ describe('onRender', () => {
254
269
} )
255
270
256
271
const utils = render ( < Counter /> )
257
- const incrementButton = utils . getByText ( 'Increment' )
258
- await userEvent . click ( incrementButton )
259
- await userEvent . click ( incrementButton )
260
272
await takeRender ( )
273
+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
274
+ await click ( incrementButton )
275
+ await click ( incrementButton )
261
276
const error = await getExpectErrorMessage ( takeRender ( ) )
262
277
263
278
expect ( error ) . toMatchInlineSnapshot ( `
0 commit comments