mirror of
https://github.com/vercel/next.js.git
synced 2026-09-20 02:25:18 +08:00
1cad9e989a
`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 -->
77 lines
2.3 KiB
TypeScript
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-'),
|
|
})
|
|
})
|
|
})
|