From ae1aca2af27276668df8229e93fe61ab56e6961d Mon Sep 17 00:00:00 2001 From: Jan Kaifer Date: Mon, 12 Dec 2022 16:35:04 +0100 Subject: [PATCH 1/3] Test that adding query can be detected by useSearhParams --- .../navigation-and-querystring/app/layout.tsx | 8 +++++ .../navigation-and-querystring/app/page.tsx | 16 +++++++++ .../navigation-and-querystring.test.ts | 34 +++++++++++++++++++ .../navigation-and-querystring/next.config.js | 5 +++ 4 files changed, 63 insertions(+) create mode 100644 test/e2e/app-dir/navigation-and-querystring/app/layout.tsx create mode 100644 test/e2e/app-dir/navigation-and-querystring/app/page.tsx create mode 100644 test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts create mode 100644 test/e2e/app-dir/navigation-and-querystring/next.config.js diff --git a/test/e2e/app-dir/navigation-and-querystring/app/layout.tsx b/test/e2e/app-dir/navigation-and-querystring/app/layout.tsx new file mode 100644 index 000000000000..762515029332 --- /dev/null +++ b/test/e2e/app-dir/navigation-and-querystring/app/layout.tsx @@ -0,0 +1,8 @@ +export default function Layout({ children }) { + return ( + + + {children} + + ) +} diff --git a/test/e2e/app-dir/navigation-and-querystring/app/page.tsx b/test/e2e/app-dir/navigation-and-querystring/app/page.tsx new file mode 100644 index 000000000000..db1fb2a443f0 --- /dev/null +++ b/test/e2e/app-dir/navigation-and-querystring/app/page.tsx @@ -0,0 +1,16 @@ +'use client' + +import Link from 'next/link' +import { useSearchParams } from 'next/navigation' + +export default function Page() { + const params = useSearchParams() + return ( + <> + + set Query + +
{JSON.stringify(params)}
+ + ) +} diff --git a/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts b/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts new file mode 100644 index 000000000000..22c64e4286b5 --- /dev/null +++ b/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts @@ -0,0 +1,34 @@ +import { createNext, FileRef } from 'e2e-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import webdriver from 'next-webdriver' +import { waitFor } from 'next-test-utils' + +describe('app-dir navigation and querystring', () => { + let next: NextInstance + + beforeAll(async () => { + next = await createNext({ + files: new FileRef(__dirname), + dependencies: { + react: 'latest', + 'react-dom': 'latest', + typescript: 'latest', + '@types/react': 'latest', + '@types/node': 'latest', + }, + }) + }) + afterAll(() => next.destroy()) + + it('shoul set query correctly', async () => { + const browser = await webdriver(next.url, '/') + expect(await browser.elementById('query').text()).toMatchInlineSnapshot( + `"{}"` + ) + + browser.elementById('set-query').click() + await waitFor(200) + + expect(await browser.elementById('query').text()).toMatchInlineSnapshot() + }) +}) diff --git a/test/e2e/app-dir/navigation-and-querystring/next.config.js b/test/e2e/app-dir/navigation-and-querystring/next.config.js new file mode 100644 index 000000000000..cfa3ac3d7aa9 --- /dev/null +++ b/test/e2e/app-dir/navigation-and-querystring/next.config.js @@ -0,0 +1,5 @@ +module.exports = { + experimental: { + appDir: true, + }, +} From bfd9f834dd881f35986e3060bca845896d176b8f Mon Sep 17 00:00:00 2001 From: Jan Kaifer Date: Mon, 12 Dec 2022 16:51:26 +0100 Subject: [PATCH 2/3] fix test for navigation changing query --- test/e2e/app-dir/navigation-and-querystring/app/page.tsx | 2 +- .../navigation-and-querystring.test.ts | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/test/e2e/app-dir/navigation-and-querystring/app/page.tsx b/test/e2e/app-dir/navigation-and-querystring/app/page.tsx index db1fb2a443f0..36264c3c0849 100644 --- a/test/e2e/app-dir/navigation-and-querystring/app/page.tsx +++ b/test/e2e/app-dir/navigation-and-querystring/app/page.tsx @@ -10,7 +10,7 @@ export default function Page() { set Query -
{JSON.stringify(params)}
+
{params.toString()}
) } diff --git a/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts b/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts index 22c64e4286b5..28f772577bc3 100644 --- a/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts +++ b/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts @@ -23,12 +23,16 @@ describe('app-dir navigation and querystring', () => { it('shoul set query correctly', async () => { const browser = await webdriver(next.url, '/') expect(await browser.elementById('query').text()).toMatchInlineSnapshot( - `"{}"` + `""` ) browser.elementById('set-query').click() await waitFor(200) - expect(await browser.elementById('query').text()).toMatchInlineSnapshot() + expect(await browser.elementById('query').text()).toMatchInlineSnapshot( + `"a=b&c=d"` + ) + const url = new URL(await browser.url()) + expect(url.searchParams.toString()).toMatchInlineSnapshot(`"a=b&c=d"`) }) }) From 1b6a851ed420f3763c1e9502ed3db1c44e041b08 Mon Sep 17 00:00:00 2001 From: Jan Kaifer Date: Mon, 12 Dec 2022 16:53:48 +0100 Subject: [PATCH 3/3] TYPO --- .../navigation-and-querystring.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts b/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts index 28f772577bc3..3b3d49d87bc3 100644 --- a/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts +++ b/test/e2e/app-dir/navigation-and-querystring/navigation-and-querystring.test.ts @@ -20,7 +20,7 @@ describe('app-dir navigation and querystring', () => { }) afterAll(() => next.destroy()) - it('shoul set query correctly', async () => { + it('should set query correctly', async () => { const browser = await webdriver(next.url, '/') expect(await browser.elementById('query').text()).toMatchInlineSnapshot( `""`