diff --git a/apps/web-next/e2e/blog-post.spec.ts b/apps/web-next/e2e/blog-post.spec.ts
new file mode 100644
index 0000000..3f6b44f
--- /dev/null
+++ b/apps/web-next/e2e/blog-post.spec.ts
@@ -0,0 +1,20 @@
+import { test, expect } from "@playwright/test";
+
+test("/blog/[slug] returns 404 for non-existent slug", async ({ page }) => {
+ const response = await page.goto("/blog/this-slug-does-not-exist", {
+ waitUntil: "domcontentloaded",
+ });
+ expect(response?.status()).toBe(404);
+});
+
+test("/blog/[slug] for a real slug renders the article", async ({ page }) => {
+ // The mock blog repository is empty by default — so this test currently
+ // expects 404. When seeded data exists in Payload, replace 404 with 200
+ // and check for article.title in the page body.
+ test.skip(
+ true,
+ "Pending: seed a published article in Payload before enabling this test",
+ );
+ await page.goto("/blog/example-slug");
+ await expect(page.locator("h1").first()).toBeVisible();
+});
diff --git a/apps/web-next/e2e/home.spec.ts b/apps/web-next/e2e/home.spec.ts
new file mode 100644
index 0000000..283b357
--- /dev/null
+++ b/apps/web-next/e2e/home.spec.ts
@@ -0,0 +1,12 @@
+import { test, expect } from "@playwright/test";
+
+test("home page renders site name + nav + article list", async ({ page }) => {
+ await page.goto("/");
+ // Page renders and shows site name
+ await expect(page.locator("h1").first()).toBeVisible();
+ // Site name from siteSettings (mock seed: "My App")
+ await expect(page.locator("body")).toContainText(/My App/i);
+ // Nav element is present on the page
+ const nav = page.locator("nav");
+ await expect(nav).toHaveCount(1);
+});
diff --git a/apps/web-next/e2e/marketing-page.spec.ts b/apps/web-next/e2e/marketing-page.spec.ts
new file mode 100644
index 0000000..d4a5c3e
--- /dev/null
+++ b/apps/web-next/e2e/marketing-page.spec.ts
@@ -0,0 +1,10 @@
+import { test, expect } from "@playwright/test";
+
+test("/about renders the about marketing page", async ({ page }) => {
+ await page.goto("/about");
+ // Either renders the seeded page (h1 = "About us") or "not yet published" message
+ // — both are HTTP 200, so the test only checks it doesn't 500.
+ const status = (await page.context().request.get("/about")).status();
+ expect(status).toBe(200);
+ await expect(page.locator("body")).toBeVisible();
+});
diff --git a/apps/web-next/next-env.d.ts b/apps/web-next/next-env.d.ts
index 5277a32..830fb59 100644
--- a/apps/web-next/next-env.d.ts
+++ b/apps/web-next/next-env.d.ts
@@ -1,4 +1,3 @@
-/* eslint-disable @typescript-eslint/triple-slash-reference */
///
///
///
diff --git a/apps/web-next/package.json b/apps/web-next/package.json
index 7ac6630..c42453d 100644
--- a/apps/web-next/package.json
+++ b/apps/web-next/package.json
@@ -7,6 +7,8 @@
"build": "echo 'Next.js build requires full environment — use pnpm dev or docker'",
"dev": "next dev --port 3000",
"lint": "eslint .",
+ "test:e2e": "playwright test",
+ "test:e2e:install": "playwright install --with-deps chromium",
"typecheck": "tsc --noEmit"
},
"dependencies": {
@@ -29,6 +31,7 @@
"superjson": "^2.2.1"
},
"devDependencies": {
+ "@playwright/test": "^1.50.0",
"@repo/eslint-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
"@types/node": "^22.0.0",
diff --git a/apps/web-next/playwright.config.ts b/apps/web-next/playwright.config.ts
new file mode 100644
index 0000000..1ee9f80
--- /dev/null
+++ b/apps/web-next/playwright.config.ts
@@ -0,0 +1,26 @@
+import { defineConfig, devices } from "@playwright/test";
+
+export default defineConfig({
+ testDir: "./e2e",
+ fullyParallel: true,
+ forbidOnly: !!process.env.CI,
+ retries: process.env.CI ? 2 : 0,
+ workers: process.env.CI ? 1 : undefined,
+ reporter: "list",
+ use: {
+ baseURL: "http://localhost:3000",
+ trace: "on-first-retry",
+ },
+ projects: [
+ {
+ name: "chromium",
+ use: { ...devices["Desktop Chrome"] },
+ },
+ ],
+ webServer: {
+ command: "pnpm dev",
+ url: "http://localhost:3000",
+ reuseExistingServer: !process.env.CI,
+ timeout: 60_000,
+ },
+});
diff --git a/apps/web-next/test-results/.last-run.json b/apps/web-next/test-results/.last-run.json
new file mode 100644
index 0000000..cbcc1fb
--- /dev/null
+++ b/apps/web-next/test-results/.last-run.json
@@ -0,0 +1,4 @@
+{
+ "status": "passed",
+ "failedTests": []
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e76a9a1..2ef8341 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -22,16 +22,16 @@ importers:
dependencies:
'@payloadcms/next':
specifier: ^3.14.0
- version: 3.81.0(@types/react@19.2.14)(graphql@16.13.2)(monaco-editor@0.55.1)(next@15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+ version: 3.81.0(@types/react@19.2.14)(graphql@16.13.2)(monaco-editor@0.55.1)(next@15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
'@payloadcms/ui':
specifier: ^3.14.0
- version: 3.81.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+ version: 3.81.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
'@repo/core-cms':
specifier: workspace:*
version: link:../../packages/core-cms
next:
specifier: ^15.3.0
- version: 15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
+ version: 15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
payload:
specifier: ^3.14.0
version: 3.81.0(graphql@16.13.2)(typescript@5.9.3)
@@ -141,7 +141,7 @@ importers:
version: 11.16.0(typescript@5.9.3)
next:
specifier: ^15.3.0
- version: 15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
+ version: 15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
payload:
specifier: ^3.14.0
version: 3.81.0(graphql@16.13.2)(typescript@5.9.3)
@@ -155,6 +155,9 @@ importers:
specifier: ^2.2.1
version: 2.2.6
devDependencies:
+ '@playwright/test':
+ specifier: ^1.50.0
+ version: 1.59.1
'@repo/eslint-config':
specifier: workspace:*
version: link:../../packages/eslint-config
@@ -326,7 +329,7 @@ importers:
version: 3.81.0(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))
'@payloadcms/richtext-lexical':
specifier: ^3.14.0
- version: 3.81.0(@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@payloadcms/next@3.81.0(graphql@16.13.2)(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(yjs@13.6.30)
+ version: 3.81.0(@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@payloadcms/next@3.81.0(graphql@16.13.2)(next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(yjs@13.6.30)
'@repo/auth':
specifier: workspace:*
version: link:../auth
@@ -1880,6 +1883,11 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
+ '@playwright/test@1.59.1':
+ resolution: {integrity: sha512-PG6q63nQg5c9rIi4/Z5lR5IVF7yU5MqmKaPOe0HSc0O2cX1fPi96sUQu5j7eo4gKCkB2AnNGoWt7y4/Xx3Kcqg==}
+ engines: {node: '>=18'}
+ hasBin: true
+
'@preact/signals-core@1.14.1':
resolution: {integrity: sha512-vxPpfXqrwUe9lpjqfYNjAF/0RF/eFGeLgdJzdmIIZjpOnTmGmAB4BjWone562mJGMRP4frU6iZ6ei3PDsu52Ng==}
@@ -3231,6 +3239,11 @@ packages:
resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
+ fsevents@2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -4000,6 +4013,16 @@ packages:
resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==}
hasBin: true
+ playwright-core@1.59.1:
+ resolution: {integrity: sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ playwright@1.59.1:
+ resolution: {integrity: sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==}
+ engines: {node: '>=18'}
+ hasBin: true
+
pluralize@8.0.0:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: '>=4'}
@@ -5904,14 +5927,14 @@ snapshots:
transitivePeerDependencies:
- typescript
- '@payloadcms/next@3.81.0(@types/react@19.2.14)(graphql@16.13.2)(monaco-editor@0.55.1)(next@15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)':
+ '@payloadcms/next@3.81.0(@types/react@19.2.14)(graphql@16.13.2)(monaco-editor@0.55.1)(next@15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)':
dependencies:
'@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
'@dnd-kit/modifiers': 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
'@dnd-kit/sortable': 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
'@payloadcms/graphql': 3.81.0(graphql@16.13.2)(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(typescript@5.9.3)
'@payloadcms/translations': 3.81.0
- '@payloadcms/ui': 3.81.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+ '@payloadcms/ui': 3.81.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
busboy: 1.6.0
dequal: 2.0.3
file-type: 21.3.4
@@ -5919,7 +5942,7 @@ snapshots:
graphql-http: 1.22.4(graphql@16.13.2)
graphql-playground-html: 1.6.30
http-status: 2.1.0
- next: 15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
+ next: 15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
path-to-regexp: 6.3.0
payload: 3.81.0(graphql@16.13.2)(typescript@5.9.3)
qs-esm: 8.0.1
@@ -5933,14 +5956,14 @@ snapshots:
- supports-color
- typescript
- '@payloadcms/next@3.81.0(graphql@16.13.2)(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)':
+ '@payloadcms/next@3.81.0(graphql@16.13.2)(next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)':
dependencies:
'@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
'@dnd-kit/modifiers': 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
'@dnd-kit/sortable': 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)
'@payloadcms/graphql': 3.81.0(graphql@16.13.2)(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(typescript@5.9.3)
'@payloadcms/translations': 3.81.0
- '@payloadcms/ui': 3.81.0(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+ '@payloadcms/ui': 3.81.0(next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
busboy: 1.6.0
dequal: 2.0.3
file-type: 21.3.4
@@ -5948,7 +5971,7 @@ snapshots:
graphql-http: 1.22.4(graphql@16.13.2)
graphql-playground-html: 1.6.30
http-status: 2.1.0
- next: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
+ next: 16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
path-to-regexp: 6.3.0
payload: 3.81.0(graphql@16.13.2)(typescript@5.9.3)
qs-esm: 8.0.1
@@ -5962,7 +5985,7 @@ snapshots:
- supports-color
- typescript
- '@payloadcms/richtext-lexical@3.81.0(@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@payloadcms/next@3.81.0(graphql@16.13.2)(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(yjs@13.6.30)':
+ '@payloadcms/richtext-lexical@3.81.0(@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@payloadcms/next@3.81.0(graphql@16.13.2)(next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(yjs@13.6.30)':
dependencies:
'@faceless-ui/modal': 3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
'@faceless-ui/scroll-info': 2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -5977,9 +6000,9 @@ snapshots:
'@lexical/selection': 0.41.0
'@lexical/table': 0.41.0
'@lexical/utils': 0.41.0
- '@payloadcms/next': 3.81.0(graphql@16.13.2)(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+ '@payloadcms/next': 3.81.0(graphql@16.13.2)(next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
'@payloadcms/translations': 3.81.0
- '@payloadcms/ui': 3.81.0(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
+ '@payloadcms/ui': 3.81.0(next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)
'@types/uuid': 10.0.0
acorn: 8.16.0
bson-objectid: 2.0.4
@@ -6012,7 +6035,7 @@ snapshots:
dependencies:
date-fns: 4.1.0
- '@payloadcms/ui@3.81.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)':
+ '@payloadcms/ui@3.81.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)':
dependencies:
'@date-fns/tz': 1.2.0
'@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -6027,7 +6050,7 @@ snapshots:
date-fns: 4.1.0
dequal: 2.0.3
md5: 2.3.0
- next: 15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
+ next: 15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
object-to-formdata: 4.5.1
payload: 3.81.0(graphql@16.13.2)(typescript@5.9.3)
qs-esm: 8.0.1
@@ -6047,7 +6070,7 @@ snapshots:
- supports-color
- typescript
- '@payloadcms/ui@3.81.0(next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)':
+ '@payloadcms/ui@3.81.0(next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0))(payload@3.81.0(graphql@16.13.2)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)':
dependencies:
'@date-fns/tz': 1.2.0
'@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
@@ -6062,7 +6085,7 @@ snapshots:
date-fns: 4.1.0
dequal: 2.0.3
md5: 2.3.0
- next: 16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
+ next: 16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0)
object-to-formdata: 4.5.1
payload: 3.81.0(graphql@16.13.2)(typescript@5.9.3)
qs-esm: 8.0.1
@@ -6087,6 +6110,10 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
+ '@playwright/test@1.59.1':
+ dependencies:
+ playwright: 1.59.1
+
'@preact/signals-core@1.14.1': {}
'@rollup/pluginutils@5.3.0(rollup@4.60.1)':
@@ -7407,6 +7434,9 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
+ fsevents@2.3.2:
+ optional: true
+
fsevents@2.3.3:
optional: true
@@ -8042,7 +8072,7 @@ snapshots:
natural-compare@1.4.0: {}
- next@15.5.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0):
+ next@15.5.14(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0):
dependencies:
'@next/env': 15.5.14
'@swc/helpers': 0.5.15
@@ -8060,13 +8090,14 @@ snapshots:
'@next/swc-linux-x64-musl': 15.5.14
'@next/swc-win32-arm64-msvc': 15.5.14
'@next/swc-win32-x64-msvc': 15.5.14
+ '@playwright/test': 1.59.1
sass: 1.99.0
sharp: 0.34.5
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
- next@16.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0):
+ next@16.2.2(@playwright/test@1.59.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.99.0):
dependencies:
'@next/env': 16.2.2
'@swc/helpers': 0.5.15
@@ -8085,6 +8116,7 @@ snapshots:
'@next/swc-linux-x64-musl': 16.2.2
'@next/swc-win32-arm64-msvc': 16.2.2
'@next/swc-win32-x64-msvc': 16.2.2
+ '@playwright/test': 1.59.1
sass: 1.99.0
sharp: 0.34.5
transitivePeerDependencies:
@@ -8304,6 +8336,14 @@ snapshots:
sonic-boom: 4.2.1
thread-stream: 3.1.0
+ playwright-core@1.59.1: {}
+
+ playwright@1.59.1:
+ dependencies:
+ playwright-core: 1.59.1
+ optionalDependencies:
+ fsevents: 2.3.2
+
pluralize@8.0.0: {}
polished@4.3.1: