diff --git a/.npmrc b/.npmrc
index d272289..1df2a6d 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1,2 +1,2 @@
-registry=http://registry.npmjs.org/
+registry=https://registry.npmjs.org/
package-lock=false
diff --git a/src/__tests__/rerender.js b/src/__tests__/rerender.js
index a8e321e..b31ae6c 100644
--- a/src/__tests__/rerender.js
+++ b/src/__tests__/rerender.js
@@ -1,5 +1,6 @@
import '@testing-library/jest-dom/extend-expect'
import { h } from 'preact'
+import { useState, useEffect } from 'preact/hooks'
import { render } from '..'
test('rerender will re-render the element', () => {
@@ -12,6 +13,23 @@ test('rerender will re-render the element', () => {
expect(container.firstChild).toHaveTextContent('hey')
})
+test('rerender will flush pending hooks effects', async () => {
+ const Component = () => {
+ const [value, setValue] = useState(0)
+ useEffect(() => {
+ const timeoutId = setTimeout(() => setValue(1), 0)
+ return () => clearTimeout(timeoutId)
+ })
+
+ return value
+ }
+
+ const { rerender, findByText } = render()
+ rerender()
+
+ await findByText('1')
+})
+
test('hydrate will not update props until next render', () => {
const initialInputElement = document.createElement('input')
const container = document.createElement('div')
diff --git a/src/pure.js b/src/pure.js
index 56d7d79..c5d809e 100644
--- a/src/pure.js
+++ b/src/pure.js
@@ -69,7 +69,7 @@ function render (
: console.log(prettyDOM(el, maxLength, options)),
unmount: () => preactRender(null, container),
rerender: (rerenderUi) => {
- setupRerender()()
+ act(() => {})
render(wrapUiIfNeeded(rerenderUi), { container, baseElement })
// Intentionally do not return anything to avoid unnecessarily complicating the API.
// folks can use all the same utilities we return in the first place that are bound to