diff --git a/test/e2e/app-dir/parallel-routes-root-slot/app/@slot/page.tsx b/test/e2e/app-dir/parallel-routes-root-slot/app/@slot/page.tsx new file mode 100644 index 0000000000000..7739f08f6a6ea --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-root-slot/app/@slot/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return '@slot rendered' +} diff --git a/test/e2e/app-dir/parallel-routes-root-slot/app/layout.tsx b/test/e2e/app-dir/parallel-routes-root-slot/app/layout.tsx new file mode 100644 index 0000000000000..8edcca91b6c6b --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-root-slot/app/layout.tsx @@ -0,0 +1,16 @@ +export default function Layout({ + children, + slot, +}: { + children: React.ReactNode + slot: React.ReactNode +}) { + return ( + + + {children} + {slot} + + + ) +} diff --git a/test/e2e/app-dir/parallel-routes-root-slot/app/page.tsx b/test/e2e/app-dir/parallel-routes-root-slot/app/page.tsx new file mode 100644 index 0000000000000..97f4b6590e2e6 --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-root-slot/app/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return
@children rendered
+} diff --git a/test/e2e/app-dir/parallel-routes-root-slot/next.config.js b/test/e2e/app-dir/parallel-routes-root-slot/next.config.js new file mode 100644 index 0000000000000..807126e4cf0bf --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-root-slot/next.config.js @@ -0,0 +1,6 @@ +/** + * @type {import('next').NextConfig} + */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/test/e2e/app-dir/parallel-routes-root-slot/parallel-routes-root-slot.test.ts b/test/e2e/app-dir/parallel-routes-root-slot/parallel-routes-root-slot.test.ts new file mode 100644 index 0000000000000..7979dfb4ae7fe --- /dev/null +++ b/test/e2e/app-dir/parallel-routes-root-slot/parallel-routes-root-slot.test.ts @@ -0,0 +1,18 @@ +import { nextTestSetup } from 'e2e-utils' + +describe('parallel-routes-root-slot', () => { + const { next } = nextTestSetup({ + files: __dirname, + }) + + it('Should render the root parallel route', async () => { + const browser = await next.browser('/') + // both the page slot (children) and the parallel slot should be rendered at the root layout + expect(await browser.elementByCss('body').text()).toContain( + '@children rendered' + ) + expect(await browser.elementByCss('body').text()).toContain( + '@slot rendered' + ) + }) +})