11/* eslint-disable @typescript-eslint/no-use-before-define */
22import { jest , describe , test , expect } from '@jest/globals'
33import { createRenderStream } from '@testing-library/react-render-stream'
4- import { userEvent } from '@testing-library/user-event'
4+ // import {userEvent} from '@testing-library/user-event'
55import * as React from 'react'
66import { ErrorBoundary } from 'react-error-boundary'
77import { getExpectErrorMessage } from '../../__testHelpers__/getCleanedErrorMessage.js'
88
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+
920function CounterForm ( {
1021 value,
1122 onIncrement,
@@ -39,14 +50,14 @@ describe('snapshotDOM', () => {
3950 snapshotDOM : true ,
4051 } )
4152 const utils = render ( < Counter /> )
42- const incrementButton = utils . getByText ( 'Increment' )
43- await userEvent . click ( incrementButton )
44- await userEvent . click ( incrementButton )
4553 {
4654 const { withinDOM} = await takeRender ( )
4755 const input = withinDOM ( ) . getByLabelText < HTMLInputElement > ( 'Value' )
4856 expect ( input . value ) . toBe ( '0' )
4957 }
58+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
59+ await click ( incrementButton )
60+ await click ( incrementButton )
5061 {
5162 const { withinDOM} = await takeRender ( )
5263 // a one-off to test that `queryBy` works and accepts a type argument
@@ -76,7 +87,7 @@ describe('snapshotDOM', () => {
7687 const { withinDOM} = await takeRender ( )
7788 const snapshotIncrementButton = withinDOM ( ) . getByText ( 'Increment' )
7889 try {
79- await userEvent . click ( snapshotIncrementButton )
90+ await click ( snapshotIncrementButton )
8091 } catch ( error ) {
8192 expect ( error ) . toMatchInlineSnapshot ( `
8293[Error: Uncaught [Error:
@@ -130,13 +141,13 @@ describe('replaceSnapshot', () => {
130141 value : number
131142 } > ( )
132143 const utils = render ( < Counter /> )
133- const incrementButton = utils . getByText ( 'Increment' )
134- await userEvent . click ( incrementButton )
135- await userEvent . click ( incrementButton )
136144 {
137145 const { snapshot} = await takeRender ( )
138146 expect ( snapshot ) . toEqual ( { value : 0 } )
139147 }
148+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
149+ await click ( incrementButton )
150+ await click ( incrementButton )
140151 {
141152 const { snapshot} = await takeRender ( )
142153 expect ( snapshot ) . toEqual ( { value : 1 } )
@@ -160,13 +171,14 @@ describe('replaceSnapshot', () => {
160171 initialSnapshot : { unrelatedValue : 'unrelated' , value : - 1 } ,
161172 } )
162173 const utils = render ( < Counter /> )
163- const incrementButton = utils . getByText ( 'Increment' )
164- await userEvent . click ( incrementButton )
165- await userEvent . click ( incrementButton )
166174 {
167175 const { snapshot} = await takeRender ( )
168176 expect ( snapshot ) . toEqual ( { unrelatedValue : 'unrelated' , value : 0 } )
169177 }
178+
179+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
180+ await click ( incrementButton )
181+ await click ( incrementButton )
170182 {
171183 const { snapshot} = await takeRender ( )
172184 expect ( snapshot ) . toEqual ( { unrelatedValue : 'unrelated' , value : 1 } )
@@ -203,6 +215,8 @@ describe('replaceSnapshot', () => {
203215 < Counter />
204216 </ ErrorBoundary > ,
205217 )
218+ await new Promise ( r => setTimeout ( r , 10 ) )
219+
206220 spy . mockRestore ( )
207221
208222 expect ( caughtError ! ) . toMatchInlineSnapshot (
@@ -231,10 +245,11 @@ describe('onRender', () => {
231245 } ,
232246 } )
233247 const utils = render ( < Counter /> )
234- const incrementButton = utils . getByText ( 'Increment' )
235- await userEvent . click ( incrementButton )
236- await userEvent . click ( incrementButton )
237248 await takeRender ( )
249+
250+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
251+ await click ( incrementButton )
252+ await click ( incrementButton )
238253 await takeRender ( )
239254 await takeRender ( )
240255 } )
@@ -254,10 +269,10 @@ describe('onRender', () => {
254269 } )
255270
256271 const utils = render ( < Counter /> )
257- const incrementButton = utils . getByText ( 'Increment' )
258- await userEvent . click ( incrementButton )
259- await userEvent . click ( incrementButton )
260272 await takeRender ( )
273+ const incrementButton = utils . getByText ( 'Increment' ) as HTMLElement // TODO
274+ await click ( incrementButton )
275+ await click ( incrementButton )
261276 const error = await getExpectErrorMessage ( takeRender ( ) )
262277
263278 expect ( error ) . toMatchInlineSnapshot ( `
0 commit comments