next.js/test/e2e/app-dir/rsc-basic/rsc-basic-react-experimental.test.ts
rsc-basic-react-experimental.test.ts77 lines2.3 KB
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-'),
    })
  })
})
Quest for Codev2.0.0
/
SIGN IN