import { nextTestSetup } from 'e2e-utils'
describe('react@experimental', () => {
const { next } = nextTestSetup({
files: __dirname,
overrideFiles: {
'next.config.js': `
module.exports = {
experimental: {
taint: true,
}
}
`,
},
})
it('should opt into the react@experimental when enabling $flag', 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-'),
})
})
})