Skip to content

Commit 3fb4ab6

Browse files
committed
test: Failing test for missing-act
1 parent 3dcd8a9 commit 3fb4ab6

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/__tests__/act.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import * as React from 'react'
22
import {act, render, fireEvent, screen} from '../'
33

4+
beforeEach(() => {
5+
global.IS_REACT_ACT_ENVIRONMENT = true
6+
})
7+
48
test('render calls useEffect immediately', () => {
59
const effectCb = jest.fn()
610
function MyUselessComponent() {
@@ -67,3 +71,27 @@ test('cleans up IS_REACT_ACT_ENVIRONMENT if its async callback throws', async ()
6771

6872
expect(global.IS_REACT_ACT_ENVIRONMENT).toEqual(false)
6973
})
74+
75+
test('state update from microtask does not trigger "missing act" warning', async () => {
76+
let triggerStateUpdateFromMicrotask
77+
function App() {
78+
const [state, setState] = React.useState(0)
79+
triggerStateUpdateFromMicrotask = () => setState(1)
80+
React.useEffect(() => {
81+
// eslint-disable-next-line jest/no-conditional-in-test
82+
if (state === 1) {
83+
Promise.resolve().then(() => {
84+
setState(2)
85+
})
86+
}
87+
}, [state])
88+
return state
89+
}
90+
const {container} = await render(<App />)
91+
92+
await act(() => {
93+
triggerStateUpdateFromMicrotask()
94+
})
95+
96+
expect(container).toHaveTextContent('2')
97+
})

0 commit comments

Comments
 (0)