Skip to content

Commit 34ccb19

Browse files
committed
Manual fixes
1 parent 3fb4ab6 commit 34ccb19

File tree

4 files changed

+43
-42
lines changed

4 files changed

+43
-42
lines changed

src/__tests__/act.js

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@ beforeEach(() => {
55
global.IS_REACT_ACT_ENVIRONMENT = true
66
})
77

8-
test('render calls useEffect immediately', () => {
8+
test('render calls useEffect immediately', async () => {
99
const effectCb = jest.fn()
1010
function MyUselessComponent() {
1111
React.useEffect(effectCb)
1212
return null
1313
}
14-
render(<MyUselessComponent />)
14+
await render(<MyUselessComponent />)
1515
expect(effectCb).toHaveBeenCalledTimes(1)
1616
})
1717

1818
test('findByTestId returns the element', async () => {
1919
const ref = React.createRef()
20-
render(<div ref={ref} data-testid="foo" />)
20+
await render(<div ref={ref} data-testid="foo" />)
2121
expect(await screen.findByTestId('foo')).toBe(ref.current)
2222
})
2323

24-
test('fireEvent triggers useEffect calls', () => {
24+
test('fireEvent triggers useEffect calls', async () => {
2525
const effectCb = jest.fn()
2626
function Counter() {
2727
React.useEffect(effectCb)
@@ -30,32 +30,33 @@ test('fireEvent triggers useEffect calls', () => {
3030
}
3131
const {
3232
container: {firstChild: buttonNode},
33-
} = render(<Counter />)
33+
} = await render(<Counter />)
3434

3535
effectCb.mockClear()
36-
fireEvent.click(buttonNode)
36+
// eslint-disable-next-line testing-library/no-await-sync-events -- TODO: Remove lint rule.
37+
await fireEvent.click(buttonNode)
3738
expect(buttonNode).toHaveTextContent('1')
3839
expect(effectCb).toHaveBeenCalledTimes(1)
3940
})
4041

41-
test('calls to hydrate will run useEffects', () => {
42+
test('calls to hydrate will run useEffects', async () => {
4243
const effectCb = jest.fn()
4344
function MyUselessComponent() {
4445
React.useEffect(effectCb)
4546
return null
4647
}
47-
render(<MyUselessComponent />, {hydrate: true})
48+
await render(<MyUselessComponent />, {hydrate: true})
4849
expect(effectCb).toHaveBeenCalledTimes(1)
4950
})
5051

51-
test('cleans up IS_REACT_ACT_ENVIRONMENT if its callback throws', () => {
52+
test('cleans up IS_REACT_ACT_ENVIRONMENT if its callback throws', async () => {
5253
global.IS_REACT_ACT_ENVIRONMENT = false
5354

54-
expect(() =>
55+
await expect(() =>
5556
act(() => {
5657
throw new Error('threw')
5758
}),
58-
).toThrow('threw')
59+
).rejects.toThrow('threw')
5960

6061
expect(global.IS_REACT_ACT_ENVIRONMENT).toEqual(false)
6162
})

src/__tests__/render.js

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ describe('render API', () => {
2525
configure(originalConfig)
2626
})
2727

28-
test('renders div into document', () => {
28+
test('renders div into document', async () => {
2929
const ref = React.createRef()
30-
const {container} = render(<div ref={ref} />)
30+
const {container} = await render(<div ref={ref} />)
3131
expect(container.firstChild).toBe(ref.current)
3232
})
3333

@@ -62,20 +62,20 @@ describe('render API', () => {
6262
)
6363
}
6464

65-
const {unmount} = render(<MyPortal />)
65+
const {unmount} = await render(<MyPortal />)
6666
expect(screen.getByText('Hello World')).toBeInTheDocument()
6767
const portalNode = screen.getByTestId('my-portal')
6868
expect(portalNode).toBeInTheDocument()
6969
unmount()
7070
expect(portalNode).not.toBeInTheDocument()
7171
})
7272

73-
test('returns baseElement which defaults to document.body', () => {
74-
const {baseElement} = render(<div />)
73+
test('returns baseElement which defaults to document.body', async () => {
74+
const {baseElement} = await render(<div />)
7575
expect(baseElement).toBe(document.body)
7676
})
7777

78-
test('supports fragments', () => {
78+
test('supports fragments', async () => {
7979
class Test extends React.Component {
8080
render() {
8181
return (
@@ -86,16 +86,16 @@ describe('render API', () => {
8686
}
8787
}
8888

89-
const {asFragment} = render(<Test />)
89+
const {asFragment} = await render(<Test />)
9090
expect(asFragment()).toMatchSnapshot()
9191
})
9292

93-
test('renders options.wrapper around node', () => {
93+
test('renders options.wrapper around node', async () => {
9494
const WrapperComponent = ({children}) => (
9595
<div data-testid="wrapper">{children}</div>
9696
)
9797

98-
const {container} = render(<div data-testid="inner" />, {
98+
const {container} = await render(<div data-testid="inner" />, {
9999
wrapper: WrapperComponent,
100100
})
101101

@@ -111,13 +111,13 @@ describe('render API', () => {
111111
`)
112112
})
113113

114-
test('renders options.wrapper around node when reactStrictMode is true', () => {
114+
test('renders options.wrapper around node when reactStrictMode is true', async () => {
115115
configure({reactStrictMode: true})
116116

117117
const WrapperComponent = ({children}) => (
118118
<div data-testid="wrapper">{children}</div>
119119
)
120-
const {container} = render(<div data-testid="inner" />, {
120+
const {container} = await render(<div data-testid="inner" />, {
121121
wrapper: WrapperComponent,
122122
})
123123

@@ -133,7 +133,7 @@ describe('render API', () => {
133133
`)
134134
})
135135

136-
test('renders twice when reactStrictMode is true', () => {
136+
test('renders twice when reactStrictMode is true', async () => {
137137
configure({reactStrictMode: true})
138138

139139
const spy = jest.fn()
@@ -142,7 +142,7 @@ describe('render API', () => {
142142
return null
143143
}
144144

145-
render(<Component />)
145+
await render(<Component />)
146146
expect(spy).toHaveBeenCalledTimes(2)
147147
})
148148

@@ -152,7 +152,7 @@ describe('render API', () => {
152152
React.useEffect(() => spy, [])
153153
return null
154154
}
155-
const {unmount} = render(<Component />)
155+
const {unmount} = await render(<Component />)
156156
expect(spy).toHaveBeenCalledTimes(0)
157157

158158
unmount()
@@ -163,11 +163,11 @@ describe('render API', () => {
163163
test('can be called multiple times on the same container', () => {
164164
const container = document.createElement('div')
165165

166-
const {unmount} = render(<strong />, {container})
166+
const {unmount} = await render(<strong />, {container})
167167

168168
expect(container).toContainHTML('<strong></strong>')
169169

170-
render(<em />, {container})
170+
await render(<em />, {container})
171171

172172
expect(container).toContainHTML('<em></em>')
173173

@@ -176,7 +176,7 @@ describe('render API', () => {
176176
expect(container).toBeEmptyDOMElement()
177177
})
178178

179-
test('hydrate will make the UI interactive', () => {
179+
test('hydrate will make the UI interactive', async () => {
180180
function App() {
181181
const [clicked, handleClick] = React.useReducer(n => n + 1, 0)
182182

@@ -193,14 +193,14 @@ describe('render API', () => {
193193

194194
expect(container).toHaveTextContent('clicked:0')
195195

196-
render(ui, {container, hydrate: true})
196+
await render(ui, {container, hydrate: true})
197197

198-
fireEvent.click(container.querySelector('button'))
198+
await fireEvent.click(container.querySelector('button'))
199199

200200
expect(container).toHaveTextContent('clicked:1')
201201
})
202202

203-
test('hydrate can have a wrapper', () => {
203+
test('hydrate can have a wrapper', async () => {
204204
const wrapperComponentMountEffect = jest.fn()
205205
function WrapperComponent({children}) {
206206
React.useEffect(() => {
@@ -214,7 +214,7 @@ describe('render API', () => {
214214
document.body.appendChild(container)
215215
container.innerHTML = ReactDOMServer.renderToString(ui)
216216

217-
render(ui, {container, hydrate: true, wrapper: WrapperComponent})
217+
await render(ui, {container, hydrate: true, wrapper: WrapperComponent})
218218

219219
expect(wrapperComponentMountEffect).toHaveBeenCalledTimes(1)
220220
})
@@ -252,13 +252,13 @@ describe('render API', () => {
252252
)
253253
})
254254

255-
testGateReact19('legacyRoot throws even with hydrate', () => {
255+
testGateReact19('legacyRoot throws even with hydrate', async () => {
256256
const ui = <div />
257257
const container = document.createElement('div')
258258
container.innerHTML = ReactDOMServer.renderToString(ui)
259-
expect(() => {
260-
render(ui, {container, hydrate: true, legacyRoot: true})
261-
}).toThrowErrorMatchingInlineSnapshot(
259+
await expect(
260+
render(ui, {container, hydrate: true, legacyRoot: true}),
261+
).rejects.toThrowErrorMatchingInlineSnapshot(
262262
`\`legacyRoot: true\` is not supported in this version of React. If your app runs React 19 or later, you should remove this flag. If your app runs React 18 or earlier, visit https://react.dev/blog/2022/03/08/react-18-upgrade-guide for upgrade instructions.`,
263263
)
264264
})

src/__tests__/renderHook.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ const isReact19 = React.version.startsWith('19.')
77
const testGateReact18 = isReact18 ? test : test.skip
88
const testGateReact19 = isReact19 ? test : test.skip
99

10-
test('gives committed result', () => {
11-
const {result} = renderHook(() => {
10+
test('gives committed result', async () => {
11+
const {result} = await renderHook(() => {
1212
const [state, setState] = React.useState(1)
1313

1414
React.useEffect(() => {

src/__tests__/rerender.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ describe('rerender API', () => {
1919

2020
test('rerender will re-render the element', () => {
2121
const Greeting = props => <div>{props.message}</div>
22-
const {container, rerender} = render(<Greeting message="hi" />)
22+
const {container, rerender} = await render(<Greeting message="hi" />)
2323
expect(container.firstChild).toHaveTextContent('hi')
2424
rerender(<Greeting message="hey" />)
2525
expect(container.firstChild).toHaveTextContent('hey')
@@ -34,7 +34,7 @@ describe('rerender API', () => {
3434
const firstValue = 'hello'
3535
initialInputElement.value = firstValue
3636

37-
const {rerender} = render(<input value="" onChange={() => null} />, {
37+
const {rerender} = await render(<input value="" onChange={() => null} />, {
3838
container,
3939
hydrate: true,
4040
})
@@ -53,7 +53,7 @@ describe('rerender API', () => {
5353
<div data-testid="wrapper">{children}</div>
5454
)
5555
const Greeting = props => <div>{props.message}</div>
56-
const {container, rerender} = render(<Greeting message="hi" />, {
56+
const {container, rerender} = await render(<Greeting message="hi" />, {
5757
wrapper: WrapperComponent,
5858
})
5959

@@ -88,7 +88,7 @@ describe('rerender API', () => {
8888
return null
8989
}
9090

91-
const {rerender} = render(<Component />)
91+
const {rerender} = await render(<Component />)
9292
expect(spy).toHaveBeenCalledTimes(2)
9393

9494
spy.mockClear()

0 commit comments

Comments
 (0)