diff --git a/test/integration/react-18/app/components/foo.js b/test/integration/react-18/app/components/foo.js new file mode 100644 index 000000000000..f759e165008e --- /dev/null +++ b/test/integration/react-18/app/components/foo.js @@ -0,0 +1 @@ +export default () => 'foo' diff --git a/test/integration/react-18/app/pages/dynamic-imports.js b/test/integration/react-18/app/pages/dynamic-imports.js new file mode 100644 index 000000000000..9f9b3eabd310 --- /dev/null +++ b/test/integration/react-18/app/pages/dynamic-imports.js @@ -0,0 +1,9 @@ +import dynamic from 'next/dynamic' + +const Foo = dynamic(() => import('../components/foo')) + +export default () => ( +
+ +
+) diff --git a/test/integration/react-18/test/basics.js b/test/integration/react-18/test/basics.js index 051b6d4d2d5d..8ef1800548ed 100644 --- a/test/integration/react-18/test/basics.js +++ b/test/integration/react-18/test/basics.js @@ -4,7 +4,7 @@ import webdriver from 'next-webdriver' import cheerio from 'cheerio' import { renderViaHTTP } from 'next-test-utils' -export default (context) => { +export default (context, env) => { it('no warnings for image related link props', async () => { await renderViaHTTP(context.appPort, '/') expect(context.stderr).not.toContain('Warning: Invalid DOM property') @@ -27,4 +27,16 @@ export default (context) => { expect(ssrId).toEqual(csrId) }) + + it('should contain dynamicIds in next data for basic dynamic imports', async () => { + const html = await renderViaHTTP(context.appPort, '/dynamic-imports') + const $ = cheerio.load(html) + const { dynamicIds } = JSON.parse($('#__NEXT_DATA__').html()) + + if (env === 'dev') { + expect(dynamicIds).toContain('dynamic-imports.js -> ../components/foo') + } else { + expect(dynamicIds.length).toBe(1) + } + }) } diff --git a/test/integration/react-18/test/index.test.js b/test/integration/react-18/test/index.test.js index 168c815bc5b4..7d89aa3ec179 100644 --- a/test/integration/react-18/test/index.test.js +++ b/test/integration/react-18/test/index.test.js @@ -25,7 +25,9 @@ const nextConfig = new File(join(appDir, 'next.config.js')) const invalidPage = new File(join(appDir, 'pages/invalid.js')) describe('Basics', () => { - runTests('default setting with react 18', (context) => basics(context)) + runTests('default setting with react 18', (context, env) => + basics(context, env) + ) }) // React 18 with Strict Mode enabled might cause double invocation of lifecycle methods.