Files
vercel__next.js/test/e2e/app-dir/rsc-basic/rsc-basic-blocking-ssr.test.ts
Jude Gao 1cad9e989a Rename experimental.useExperimentalReact to blockingSSR (#94869)
`experimental.useExperimentalReact` names the React *build* it pulls in
rather than the feature it's there for. Rename it to `blockingSSR` — the
actual capability (React's blocking SSR, which emits `<link
rel="expect">` to hold first paint until the streamed shell is coherent)
— mirroring React's own feature flag so it's clear why the experimental
channel got enabled when grepping.

<!-- NEXT_JS_LLM_PR -->
2026-06-17 10:35:07 -04:00

77 lines
2.3 KiB
TypeScript

import { nextTestSetup } from 'e2e-utils'
describe('react@experimental - blockingSSR', () => {
const { next } = nextTestSetup({
files: __dirname,
overrideFiles: {
'next.config.js': `
module.exports = {
experimental: {
blockingSSR: true,
}
}
`,
},
})
it('should opt into the react@experimental channel when blockingSSR is enabled', async () => {
const resPages$ = await next.render$('/app-react')
const [
ssrReact,
ssrReactDOM,
ssrClientReact,
ssrClientReactDOM,
ssrClientReactDOMServer,
] = [
resPages$('#react').text(),
resPages$('#react-dom').text(),
resPages$('#client-react').text(),
resPages$('#client-react-dom').text(),
resPages$('#client-react-dom-server').text(),
]
expect({
ssrReact,
ssrReactDOM,
ssrClientReact,
ssrClientReactDOM,
ssrClientReactDOMServer,
}).toEqual({
ssrReact: expect.stringMatching('-experimental-'),
ssrReactDOM: expect.stringMatching('-experimental-'),
ssrClientReact: expect.stringMatching('-experimental-'),
ssrClientReactDOM: expect.stringMatching('-experimental-'),
ssrClientReactDOMServer: expect.stringMatching('-experimental-'),
})
const browser = await next.browser('/app-react')
const [
browserReact,
browserReactDOM,
browserClientReact,
browserClientReactDOM,
browserClientReactDOMServer,
] = await browser.eval(`
[
document.querySelector('#react').innerText,
document.querySelector('#react-dom').innerText,
document.querySelector('#client-react').innerText,
document.querySelector('#client-react-dom').innerText,
document.querySelector('#client-react-dom-server').innerText,
]
`)
expect({
browserReact,
browserReactDOM,
browserClientReact,
browserClientReactDOM,
browserClientReactDOMServer,
}).toEqual({
browserReact: expect.stringMatching('-experimental-'),
browserReactDOM: expect.stringMatching('-experimental-'),
browserClientReact: expect.stringMatching('-experimental-'),
browserClientReactDOM: expect.stringMatching('-experimental-'),
browserClientReactDOMServer: expect.stringMatching('-experimental-'),
})
})
})