Skip to content

Commit 5be1d35

Browse files
Fix CI
1 parent 69c631d commit 5be1d35

File tree

3 files changed

+61
-9
lines changed

3 files changed

+61
-9
lines changed

Diff for: src/__tests__/render.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ describe('render API', () => {
277277

278278
render(ui, {wrapper: WrapperComponent, reactStrictMode: true})
279279

280-
expect(wrapperComponentMountEffect).toHaveBeenCalledTimes(2);
280+
expect(wrapperComponentMountEffect).toHaveBeenCalledTimes(2)
281281
})
282282

283283
test('reactStrictMode in config is used when renderOptions does not specify reactStrictMode', () => {
@@ -294,6 +294,6 @@ describe('render API', () => {
294294

295295
render(ui, {wrapper: WrapperComponent})
296296

297-
expect(wrapperComponentMountEffect).toHaveBeenCalledTimes(2);
297+
expect(wrapperComponentMountEffect).toHaveBeenCalledTimes(2)
298298
})
299299
})

Diff for: src/__tests__/renderHook.js

+30-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import React from 'react'
2-
import {renderHook} from '../pure'
1+
import React, {useEffect} from 'react'
2+
import {configure, renderHook} from '../pure'
33

44
const isReact18 = React.version.startsWith('18.')
55
const isReact19 = React.version.startsWith('19.')
@@ -111,3 +111,31 @@ testGateReact19('legacyRoot throws', () => {
111111
`\`legacyRoot: true\` is not supported in this version of React. If your app runs React 19 or later, you should remove this flag. If your app runs React 18 or earlier, visit https://react.dev/blog/2022/03/08/react-18-upgrade-guide for upgrade instructions.`,
112112
)
113113
})
114+
115+
describe('reactStrictMode', () => {
116+
let originalConfig
117+
beforeEach(() => {
118+
// Grab the existing configuration so we can restore
119+
// it at the end of the test
120+
configure(existingConfig => {
121+
originalConfig = existingConfig
122+
// Don't change the existing config
123+
return {}
124+
})
125+
})
126+
127+
afterEach(() => {
128+
configure(originalConfig)
129+
})
130+
131+
test('reactStrictMode in renderOptions has precedence over config when rendering', () => {
132+
const hookMountEffect = jest.fn()
133+
configure({reactStrictMode: false})
134+
135+
renderHook(() => useEffect(() => hookMountEffect()), {
136+
reactStrictMode: true,
137+
})
138+
139+
expect(hookMountEffect).toHaveBeenCalledTimes(2)
140+
})
141+
})

Diff for: src/pure.js

+29-5
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,24 @@ function wrapUiIfNeeded(innerElement, wrapperComponent) {
9191

9292
function createConcurrentRoot(
9393
container,
94-
{hydrate, onCaughtError, onRecoverableError, ui, wrapper: WrapperComponent, reactStrictMode},
94+
{
95+
hydrate,
96+
onCaughtError,
97+
onRecoverableError,
98+
ui,
99+
wrapper: WrapperComponent,
100+
reactStrictMode,
101+
},
95102
) {
96103
let root
97104
if (hydrate) {
98105
act(() => {
99106
root = ReactDOMClient.hydrateRoot(
100107
container,
101-
strictModeIfNeeded(wrapUiIfNeeded(ui, WrapperComponent), reactStrictMode),
108+
strictModeIfNeeded(
109+
wrapUiIfNeeded(ui, WrapperComponent),
110+
reactStrictMode,
111+
),
102112
{onCaughtError, onRecoverableError},
103113
)
104114
})
@@ -144,17 +154,31 @@ function createLegacyRoot(container) {
144154

145155
function renderRoot(
146156
ui,
147-
{baseElement, container, hydrate, queries, root, wrapper: WrapperComponent, reactStrictMode},
157+
{
158+
baseElement,
159+
container,
160+
hydrate,
161+
queries,
162+
root,
163+
wrapper: WrapperComponent,
164+
reactStrictMode,
165+
},
148166
) {
149167
act(() => {
150168
if (hydrate) {
151169
root.hydrate(
152-
strictModeIfNeeded(wrapUiIfNeeded(ui, WrapperComponent), reactStrictMode),
170+
strictModeIfNeeded(
171+
wrapUiIfNeeded(ui, WrapperComponent),
172+
reactStrictMode,
173+
),
153174
container,
154175
)
155176
} else {
156177
root.render(
157-
strictModeIfNeeded(wrapUiIfNeeded(ui, WrapperComponent), reactStrictMode),
178+
strictModeIfNeeded(
179+
wrapUiIfNeeded(ui, WrapperComponent),
180+
reactStrictMode,
181+
),
158182
container,
159183
)
160184
}

0 commit comments

Comments
 (0)