From a22858d6e783021c9147b0cb2e57620dedd7fdfc Mon Sep 17 00:00:00 2001 From: hrmny <8845940+ForsakenHarmony@users.noreply.github.com> Date: Tue, 2 Jul 2024 17:07:16 +0200 Subject: [PATCH] test: add test for parallel routes hmr (#67392) ### What? A test for #67222 --- .../hmr-parallel-routes/app/@bar/page.tsx | 3 ++ .../hmr-parallel-routes/app/@foo/page.tsx | 3 ++ .../hmr-parallel-routes/app/layout.tsx | 14 +++++++++ .../hmr-parallel-routes.test.ts | 30 +++++++++++++++++++ .../hmr-parallel-routes/next.config.js | 6 ++++ 5 files changed, 56 insertions(+) create mode 100644 test/development/app-dir/hmr-parallel-routes/app/@bar/page.tsx create mode 100644 test/development/app-dir/hmr-parallel-routes/app/@foo/page.tsx create mode 100644 test/development/app-dir/hmr-parallel-routes/app/layout.tsx create mode 100644 test/development/app-dir/hmr-parallel-routes/hmr-parallel-routes.test.ts create mode 100644 test/development/app-dir/hmr-parallel-routes/next.config.js diff --git a/test/development/app-dir/hmr-parallel-routes/app/@bar/page.tsx b/test/development/app-dir/hmr-parallel-routes/app/@bar/page.tsx new file mode 100644 index 0000000000..4289beab2d --- /dev/null +++ b/test/development/app-dir/hmr-parallel-routes/app/@bar/page.tsx @@ -0,0 +1,3 @@ +export default function BarPage() { + return
Bar Page
+} diff --git a/test/development/app-dir/hmr-parallel-routes/app/@foo/page.tsx b/test/development/app-dir/hmr-parallel-routes/app/@foo/page.tsx new file mode 100644 index 0000000000..621a5e5618 --- /dev/null +++ b/test/development/app-dir/hmr-parallel-routes/app/@foo/page.tsx @@ -0,0 +1,3 @@ +export default function FooPage() { + return
Foo Page
+} diff --git a/test/development/app-dir/hmr-parallel-routes/app/layout.tsx b/test/development/app-dir/hmr-parallel-routes/app/layout.tsx new file mode 100644 index 0000000000..199ec46b93 --- /dev/null +++ b/test/development/app-dir/hmr-parallel-routes/app/layout.tsx @@ -0,0 +1,14 @@ +import { ReactNode } from 'react' + +function Layout(props: { foo: ReactNode; bar: ReactNode }) { + return ( + + + {props.foo} + {props.bar} + + + ) +} + +export default Layout diff --git a/test/development/app-dir/hmr-parallel-routes/hmr-parallel-routes.test.ts b/test/development/app-dir/hmr-parallel-routes/hmr-parallel-routes.test.ts new file mode 100644 index 0000000000..d6bb67f768 --- /dev/null +++ b/test/development/app-dir/hmr-parallel-routes/hmr-parallel-routes.test.ts @@ -0,0 +1,30 @@ +import { nextTestSetup } from 'e2e-utils' +import { assertNoRedbox } from 'next-test-utils' + +describe('hmr-parallel-routes', () => { + const { next } = nextTestSetup({ + files: __dirname, + }) + + it('should update parallel routes via HMR', async () => { + const browser = await next.browser('/') + expect(await browser.elementByCss('#bar').text()).toBe('Bar Page') + expect(await browser.elementByCss('#foo').text()).toBe('Foo Page') + + await next.patchFile('app/@bar/page.tsx', (content) => + content.replace('Bar Page', 'Bar Page Updated') + ) + + await assertNoRedbox(browser) + + expect(await browser.elementByCss('#bar').text()).toBe('Bar Page Updated') + + await next.patchFile('app/@foo/page.tsx', (content) => + content.replace('Foo Page', 'Foo Page Updated') + ) + + await assertNoRedbox(browser) + + expect(await browser.elementByCss('#foo').text()).toBe('Foo Page Updated') + }) +}) diff --git a/test/development/app-dir/hmr-parallel-routes/next.config.js b/test/development/app-dir/hmr-parallel-routes/next.config.js new file mode 100644 index 0000000000..807126e4cf --- /dev/null +++ b/test/development/app-dir/hmr-parallel-routes/next.config.js @@ -0,0 +1,6 @@ +/** + * @type {import('next').NextConfig} + */ +const nextConfig = {} + +module.exports = nextConfig