Skip to content

Commit 09616b7

Browse files
committed
Automatically wrap waitForNextUpdate in act. Fixes #14, #110
1 parent ab7ad16 commit 09616b7

File tree

3 files changed

+22
-11
lines changed

3 files changed

+22
-11
lines changed

Diff for: package-lock.json

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@
3737
},
3838
"dependencies": {
3939
"@babel/runtime": "^7.5.4",
40-
"@types/react": "^16.8.23",
41-
"@types/react-test-renderer": "^16.8.2"
40+
"@types/react": ">=16.9.0",
41+
"@types/react-test-renderer": ">=16.9.0"
4242
},
4343
"devDependencies": {
4444
"@babel/cli": "7.5.5",
@@ -69,8 +69,8 @@
6969
"typings-tester": "0.3.2"
7070
},
7171
"peerDependencies": {
72-
"react": ">=16.8.0",
73-
"react-test-renderer": ">=16.8.0"
72+
"react": ">=16.9.0",
73+
"react-test-renderer": ">=16.9.0"
7474
},
7575
"jest": {
7676
"collectCoverage": true,

Diff for: src/index.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,20 @@ function renderHook(callback, { initialProps, wrapper } = {}) {
7373
})
7474
const { unmount, update } = testRenderer
7575

76+
let waitingForNextUpdate = null
77+
const resolveOnNextUpdate = (resolve) => {
78+
addResolver((...args) => {
79+
waitingForNextUpdate = null
80+
resolve(...args)
81+
})
82+
}
83+
7684
return {
7785
result,
78-
waitForNextUpdate: () => new Promise((resolve) => addResolver(resolve)),
86+
waitForNextUpdate: () => {
87+
waitingForNextUpdate = waitingForNextUpdate || act(() => new Promise(resolveOnNextUpdate))
88+
return waitingForNextUpdate
89+
},
7990
rerender: (newProps = hookProps.current) => {
8091
hookProps.current = newProps
8192
act(() => {

0 commit comments

Comments
 (0)