From 5247d27dec0a2727221c34c9941465438727075e Mon Sep 17 00:00:00 2001 From: Joe Date: Sun, 27 Feb 2022 05:02:20 +0000 Subject: [PATCH 1/4] refactor(server/pure): remove unnecessary type annotation --- src/server/pure.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/pure.ts b/src/server/pure.ts index 1978f2d0..86c9ba5b 100644 --- a/src/server/pure.ts +++ b/src/server/pure.ts @@ -13,7 +13,7 @@ function createServerRenderer( ) { let renderProps: TProps | undefined let container: HTMLDivElement | undefined - let serverOutput: string = '' + let serverOutput = '' const testHarness = createTestHarness(rendererProps, wrapper, false) return { From 93d927d325934cd30746367a3898659c65670460 Mon Sep 17 00:00:00 2001 From: Joe Date: Sun, 27 Feb 2022 05:05:34 +0000 Subject: [PATCH 2/4] feat: add ssr.test.ts This adds a new test to verify that renderHook can be called in an SSR-like environment based on the changes implemented in #607. --- src/__tests__/ssr.test.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/__tests__/ssr.test.ts diff --git a/src/__tests__/ssr.test.ts b/src/__tests__/ssr.test.ts new file mode 100644 index 00000000..1119d1a1 --- /dev/null +++ b/src/__tests__/ssr.test.ts @@ -0,0 +1,18 @@ +/** + * @jest-environment node + */ +import { useState } from 'react' + +// This verifies that renderHook can be called in +// a SSR-like environment. +describe('renderHook', () => { + function useLoading() { + const [loading, setLoading] = useState(false) + return { loading, setLoading } + } + runForRenderers(['server'], ({ renderHook }) => { + test('should not throw in SSR environment', () => { + expect(() => renderHook(() => useLoading())).not.toThrowError('document is not defined') + }) + }) +}) From 59c752febecec075cc222e59f1e5d4cdbf7c6981 Mon Sep 17 00:00:00 2001 From: Joe Date: Sun, 27 Feb 2022 05:11:03 +0000 Subject: [PATCH 3/4] chore: update contributors table --- .all-contributorsrc | 3 ++- README.md | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index c9aecfcd..b8a61f52 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -145,7 +145,8 @@ "avatar_url": "https://avatars3.githubusercontent.com/u/3806031?v=4", "profile": "https://jsjoe.io", "contributions": [ - "tutorial" + "tutorial", + "test" ] }, { diff --git a/README.md b/README.md index fc95d837..b8e59a02 100644 --- a/README.md +++ b/README.md @@ -146,9 +146,9 @@ to test against. It also does not come installed with a specific renderer, we cu [`react-test-renderer`](https://www.npmjs.com/package/react-test-renderer) and [`react-dom`](https://www.npmjs.com/package/react-dom). You only need to install one of them, however, if you do have both installed, we will use `react-test-renderer` as the default. For more -information see the [installation docs](https://react-hooks-testing-library.com/installation#renderer). -Generally, the installed versions for `react` and the selected renderer should have matching -versions: +information see the +[installation docs](https://react-hooks-testing-library.com/installation#renderer). Generally, the +installed versions for `react` and the selected renderer should have matching versions: ```sh npm install react@^16.9.0 @@ -186,7 +186,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Vince Malone

💻
Sebastian Weber

📝
Christian Gill

📖 -
JavaScript Joe

+
JavaScript Joe

⚠️
Sarah Dayan

📦 From c37e8a46c327b5143ffa4b69927b56d6ad6dfc1d Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Fri, 10 Jun 2022 19:29:19 +0000 Subject: [PATCH 4/4] refactor: remove act call in render in sever/pure @mpeyper explained how this `act` call in server rendering is not really necessary so we can remove it. --- src/server/pure.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/server/pure.ts b/src/server/pure.ts index 86c9ba5b..aa62a283 100644 --- a/src/server/pure.ts +++ b/src/server/pure.ts @@ -19,13 +19,11 @@ function createServerRenderer( return { render(props?: TProps) { renderProps = props - act(() => { - try { - serverOutput = ReactDOMServer.renderToString(testHarness(props)) - } catch (e: unknown) { - rendererProps.setError(e as Error) - } - }) + try { + serverOutput = ReactDOMServer.renderToString(testHarness(props)) + } catch (e: unknown) { + rendererProps.setError(e as Error) + } }, hydrate() { if (container) {