From ba59d1f603b703bcdf45827ee7804a99d316c0b7 Mon Sep 17 00:00:00 2001 From: Sebastian Silbermann Date: Wed, 15 Jul 2020 14:01:38 +0200 Subject: [PATCH] test(unmount): Add expected behavior for unmount() and cleanup functions --- src/__tests__/render.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/__tests__/render.js b/src/__tests__/render.js index 54916ba4..8ea28ebf 100644 --- a/src/__tests__/render.js +++ b/src/__tests__/render.js @@ -1,6 +1,8 @@ import React from 'react' import ReactDOM from 'react-dom' import {render, screen} from '../' +import {cleanup} from '../pure' +import {act} from 'react-dom/test-utils' test('renders div into document', () => { const ref = React.createRef() @@ -87,3 +89,17 @@ test('renders options.wrapper around node', () => { `) }) + +test('flushes useEffect cleanup functions sync on unmount()', () => { + const spy = jest.fn() + function Component() { + React.useEffect(() => spy, []) + return null + } + const {unmount} = render() + expect(spy).toHaveBeenCalledTimes(0) + + unmount() + + expect(spy).toHaveBeenCalledTimes(1) +})