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'
+ )
+ })
+})