From 17434d7263d9acff0a6b76a97552f78857220b46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Renaudeau?= Date: Wed, 14 Dec 2016 16:57:21 +0100 Subject: [PATCH] Fix test renderer unmount (#8512) * [react-test-renderer] unmount the inner instances Fixes https://github.com/facebook/react/issues/8459 * add a test for https://github.com/facebook/react/issues/8459 * add new test in tests-passing.txt --- src/renderers/testing/ReactTestRenderer.js | 5 ++++- .../__tests__/ReactTestRenderer-test.js | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/renderers/testing/ReactTestRenderer.js b/src/renderers/testing/ReactTestRenderer.js index 0d800fc2e2d42..dc808f3cdecd2 100644 --- a/src/renderers/testing/ReactTestRenderer.js +++ b/src/renderers/testing/ReactTestRenderer.js @@ -120,7 +120,10 @@ class ReactTestComponent { } getHostNode(): void {} - unmountComponent(): void {} + unmountComponent(safely, skipLifecycle): void { + // $FlowFixMe https://github.com/facebook/flow/issues/1805 + this.unmountChildren(safely, skipLifecycle); + } } Object.assign(ReactTestComponent.prototype, ReactMultiChild.Mixin); diff --git a/src/renderers/testing/__tests__/ReactTestRenderer-test.js b/src/renderers/testing/__tests__/ReactTestRenderer-test.js index fb918dc2cb8f2..5eac2c1c1b3e7 100644 --- a/src/renderers/testing/__tests__/ReactTestRenderer-test.js +++ b/src/renderers/testing/__tests__/ReactTestRenderer-test.js @@ -326,6 +326,24 @@ describe('ReactTestRenderer', () => { expect(() => inst.unmount()).not.toThrow(); }); + it('supports unmounting inner instances', () => { + let count = 0; + class Foo extends React.Component { + componentWillUnmount() { + count++; + } + render() { + return
; + } + } + const inst = ReactTestRenderer.create( +
, + {createNodeMock: () => 'foo'} + ); + expect(() => inst.unmount()).not.toThrow(); + expect(count).toEqual(1); + }); + it('supports updates when using refs', () => { const log = []; const createNodeMock = element => {