From 4a81dc407433a624acff3e8c9efbecbcdcc94ed5 Mon Sep 17 00:00:00 2001
From: Gautam Singh <5769869+gautamsi@users.noreply.github.com>
Date: Sun, 30 Jun 2024 03:47:43 -0500
Subject: [PATCH] fix more examples
---
examples/auth/app/(admin)/.admin/index.tsx | 18 +++----
examples/auth/next.config.mjs | 4 --
.../app/(admin)/.admin/index.tsx | 12 ++---
.../app/(admin)/.admin/index.tsx | 21 +++++++++
.../app/(admin)/[listKey]/[id]/page.tsx | 4 ++
.../app/(admin)/[listKey]/create/page.tsx | 4 ++
.../app/(admin)/[listKey]/page.tsx | 4 ++
.../custom-field-view/app/(admin)/layout.tsx | 16 +++++++
.../app/(admin)/no-access/page.tsx | 4 ++
.../custom-field-view/app/(admin)/page.tsx | 2 +
examples/custom-field-view/app/layout.tsx | 11 +++++
examples/custom-field-view/next-env.d.ts | 5 ++
examples/custom-field-view/schema.graphql | 3 ++
examples/custom-field-view/schema.prisma | 1 +
examples/custom-field-view/schema.ts | 8 ++++
examples/custom-field-view/tsconfig.json | 37 +++++++++++++++
.../custom-field/app/(admin)/.admin/index.tsx | 19 ++++++++
.../app/(admin)/[listKey]/[id]/page.tsx | 4 ++
.../app/(admin)/[listKey]/create/page.tsx | 4 ++
.../app/(admin)/[listKey]/page.tsx | 4 ++
examples/custom-field/app/(admin)/layout.tsx | 16 +++++++
.../app/(admin)/no-access/page.tsx | 4 ++
examples/custom-field/app/(admin)/page.tsx | 2 +
examples/custom-field/app/layout.tsx | 11 +++++
examples/custom-field/next-env.d.ts | 5 ++
examples/custom-field/tsconfig.json | 37 +++++++++++++++
examples/document-field/next-env.d copy.ts | 5 ++
examples/document-field/next-env.d.ts | 5 +-
examples/document-field/next.config.js | 5 --
.../src/app/(admin)/.admin/index.tsx | 18 +++++++
.../src/app/(admin)/[listKey]/[id]/page.tsx | 4 ++
.../src/app/(admin)/[listKey]/create/page.tsx | 4 ++
.../src/app/(admin)/[listKey]/page.tsx | 4 ++
.../(admin)/author/[id]/page.tsx} | 45 +++++++++---------
.../document-field/src/app/(admin)/layout.tsx | 16 +++++++
.../src/app/(admin)/no-access/page.tsx | 4 ++
.../document-field/src/app/(admin)/page.tsx | 2 +
.../(admin)/post/[slug]/page.tsx} | 47 +++++++++----------
examples/document-field/src/app/layout.tsx | 11 +++++
.../src/{pages/index.tsx => app/page.tsx} | 35 +++++++-------
examples/document-field/tsconfig.json | 25 ++++++++--
packages/auth/src/pages/InitPage.tsx | 4 +-
.../src/admin-ui/components/Navigation.tsx | 2 +-
packages/core/src/admin-ui/templates/app.ts | 21 ++++++++-
packages/core/src/admin-ui/templates/index.ts | 3 +-
.../custom-admin-ui-pages.test.ts | 2 +-
.../custom-field-view.test.ts | 2 +-
.../examples-smoke-tests/custom-field.test.ts | 2 +-
.../default-values.test.ts | 2 +-
.../document-field.test.ts | 2 +-
.../extend-express-app.test.ts | 4 +-
...xtend-graphql-schema-graphql-tools.test.ts | 2 +-
.../extend-graphql-schema-graphql-ts.test.ts | 2 +-
.../extend-graphql-schema-nexus.test.ts | 2 +-
.../examples-smoke-tests/usecase-blog.test.ts | 2 +-
.../examples-smoke-tests/usecase-todo.test.ts | 2 +-
tests/examples-smoke-tests/utils.ts | 2 +-
.../virtual-field.test.ts | 2 +-
.../test-projects/basic}/next.config.mjs | 4 --
.../crud-notifications}/next.config.mjs | 4 --
.../live-reloading}/next.config.mjs | 4 --
61 files changed, 431 insertions(+), 129 deletions(-)
create mode 100644 examples/custom-field-view/app/(admin)/.admin/index.tsx
create mode 100644 examples/custom-field-view/app/(admin)/[listKey]/[id]/page.tsx
create mode 100644 examples/custom-field-view/app/(admin)/[listKey]/create/page.tsx
create mode 100644 examples/custom-field-view/app/(admin)/[listKey]/page.tsx
create mode 100644 examples/custom-field-view/app/(admin)/layout.tsx
create mode 100644 examples/custom-field-view/app/(admin)/no-access/page.tsx
create mode 100644 examples/custom-field-view/app/(admin)/page.tsx
create mode 100644 examples/custom-field-view/app/layout.tsx
create mode 100644 examples/custom-field-view/next-env.d.ts
create mode 100644 examples/custom-field-view/tsconfig.json
create mode 100644 examples/custom-field/app/(admin)/.admin/index.tsx
create mode 100644 examples/custom-field/app/(admin)/[listKey]/[id]/page.tsx
create mode 100644 examples/custom-field/app/(admin)/[listKey]/create/page.tsx
create mode 100644 examples/custom-field/app/(admin)/[listKey]/page.tsx
create mode 100644 examples/custom-field/app/(admin)/layout.tsx
create mode 100644 examples/custom-field/app/(admin)/no-access/page.tsx
create mode 100644 examples/custom-field/app/(admin)/page.tsx
create mode 100644 examples/custom-field/app/layout.tsx
create mode 100644 examples/custom-field/next-env.d.ts
create mode 100644 examples/custom-field/tsconfig.json
create mode 100644 examples/document-field/next-env.d copy.ts
delete mode 100644 examples/document-field/next.config.js
create mode 100644 examples/document-field/src/app/(admin)/.admin/index.tsx
create mode 100644 examples/document-field/src/app/(admin)/[listKey]/[id]/page.tsx
create mode 100644 examples/document-field/src/app/(admin)/[listKey]/create/page.tsx
create mode 100644 examples/document-field/src/app/(admin)/[listKey]/page.tsx
rename examples/document-field/src/{pages/author/[id].tsx => app/(admin)/author/[id]/page.tsx} (58%)
create mode 100644 examples/document-field/src/app/(admin)/layout.tsx
create mode 100644 examples/document-field/src/app/(admin)/no-access/page.tsx
create mode 100644 examples/document-field/src/app/(admin)/page.tsx
rename examples/document-field/src/{pages/post/[slug].tsx => app/(admin)/post/[slug]/page.tsx} (89%)
create mode 100644 examples/document-field/src/app/layout.tsx
rename examples/document-field/src/{pages/index.tsx => app/page.tsx} (84%)
rename {examples/custom-admin-ui-logo => tests/test-projects/basic}/next.config.mjs (56%)
rename {examples/custom-admin-ui-navigation => tests/test-projects/crud-notifications}/next.config.mjs (56%)
rename {examples/custom-admin-ui-pages => tests/test-projects/live-reloading}/next.config.mjs (56%)
diff --git a/examples/auth/app/(admin)/.admin/index.tsx b/examples/auth/app/(admin)/.admin/index.tsx
index 6b1533b3457..cc237ef7f98 100644
--- a/examples/auth/app/(admin)/.admin/index.tsx
+++ b/examples/auth/app/(admin)/.admin/index.tsx
@@ -1,13 +1,13 @@
/* eslint-disable */
-import * as view0 from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view'
-import * as view1 from '@keystone-6/core/fields/types/text/views'
-import * as view2 from '@keystone-6/core/fields/types/password/views'
-import * as view3 from '@keystone-6/core/fields/types/checkbox/views'
-import * as view4 from '@keystone-6/core/fields/types/timestamp/views'
-import * as view5 from '@keystone-6/core/fields/types/relationship/views'
-import * as view6 from '@keystone-6/core/fields/types/integer/views'
-import * as view7 from '@keystone-6/core/fields/types/select/views'
-import * as view8 from '@keystone-6/core/fields/types/json/views'
+import * as view0 from "@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view"
+import * as view1 from "@keystone-6/core/fields/types/text/views"
+import * as view2 from "@keystone-6/core/fields/types/password/views"
+import * as view3 from "@keystone-6/core/fields/types/checkbox/views"
+import * as view4 from "@keystone-6/core/fields/types/timestamp/views"
+import * as view5 from "@keystone-6/core/fields/types/relationship/views"
+import * as view6 from "@keystone-6/core/fields/types/integer/views"
+import * as view7 from "@keystone-6/core/fields/types/select/views"
+import * as view8 from "@keystone-6/core/fields/types/json/views"
const adminConfig = {}
diff --git a/examples/auth/next.config.mjs b/examples/auth/next.config.mjs
index bec106de70d..8f06b183bdf 100644
--- a/examples/auth/next.config.mjs
+++ b/examples/auth/next.config.mjs
@@ -1,10 +1,6 @@
// you don't need this if you're building something outside of the Keystone repo
export default {
- experimental: {
- // without this, 'Error: Expected Upload to be a GraphQL nullable type.'
- serverComponentsExternalPackages: ['graphql'],
- },
eslint: {
ignoreDuringBuilds: true,
},
diff --git a/examples/custom-admin-ui-navigation/app/(admin)/.admin/index.tsx b/examples/custom-admin-ui-navigation/app/(admin)/.admin/index.tsx
index 5dd11446daf..283542749b0 100644
--- a/examples/custom-admin-ui-navigation/app/(admin)/.admin/index.tsx
+++ b/examples/custom-admin-ui-navigation/app/(admin)/.admin/index.tsx
@@ -1,10 +1,10 @@
/* eslint-disable */
-import * as view0 from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view'
-import * as view1 from '@keystone-6/core/fields/types/text/views'
-import * as view2 from '@keystone-6/core/fields/types/select/views'
-import * as view3 from '@keystone-6/core/fields/types/checkbox/views'
-import * as view4 from '@keystone-6/core/fields/types/relationship/views'
-import * as view5 from '@keystone-6/core/fields/types/timestamp/views'
+import * as view0 from "@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view"
+import * as view1 from "@keystone-6/core/fields/types/text/views"
+import * as view2 from "@keystone-6/core/fields/types/select/views"
+import * as view3 from "@keystone-6/core/fields/types/checkbox/views"
+import * as view4 from "@keystone-6/core/fields/types/relationship/views"
+import * as view5 from "@keystone-6/core/fields/types/timestamp/views"
import * as adminConfig from '../config'
diff --git a/examples/custom-field-view/app/(admin)/.admin/index.tsx b/examples/custom-field-view/app/(admin)/.admin/index.tsx
new file mode 100644
index 00000000000..7c8948ac698
--- /dev/null
+++ b/examples/custom-field-view/app/(admin)/.admin/index.tsx
@@ -0,0 +1,21 @@
+/* eslint-disable */
+import * as view0 from "@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view"
+import * as view1 from "@keystone-6/core/fields/types/text/views"
+import * as view2 from "@keystone-6/core/fields/types/select/views"
+import * as view3 from "@keystone-6/core/fields/types/checkbox/views"
+import * as view4 from "@keystone-6/core/fields/types/relationship/views"
+import * as view5 from "@keystone-6/core/fields/types/timestamp/views"
+import * as view6 from "@keystone-6/core/fields/types/json/views"
+import * as view7 from "../../.././fields/related-links/components"
+import * as view8 from "@/fields/related-links/components"
+
+const adminConfig = {}
+
+export const config = {
+ lazyMetadataQuery: {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"keystone","loc":{"start":22,"end":30}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"adminMeta","loc":{"start":39,"end":48}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"lists","loc":{"start":59,"end":64}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key","loc":{"start":77,"end":80}},"arguments":[],"directives":[],"loc":{"start":77,"end":80}},{"kind":"Field","name":{"kind":"Name","value":"isHidden","loc":{"start":91,"end":99}},"arguments":[],"directives":[],"loc":{"start":91,"end":99}},{"kind":"Field","name":{"kind":"Name","value":"fields","loc":{"start":110,"end":116}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"path","loc":{"start":131,"end":135}},"arguments":[],"directives":[],"loc":{"start":131,"end":135}},{"kind":"Field","name":{"kind":"Name","value":"createView","loc":{"start":148,"end":158}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"fieldMode","loc":{"start":175,"end":184}},"arguments":[],"directives":[],"loc":{"start":175,"end":184}}],"loc":{"start":159,"end":198}},"loc":{"start":148,"end":198}}],"loc":{"start":117,"end":210}},"loc":{"start":110,"end":210}}],"loc":{"start":65,"end":220}},"loc":{"start":59,"end":220}}],"loc":{"start":49,"end":228}},"loc":{"start":39,"end":228}}],"loc":{"start":31,"end":234}},"loc":{"start":22,"end":234}}]}}]},
+ fieldViews: [view0,view1,view2,view3,view4,view5,view6,view7,view8],
+ adminMetaHash: 'o10uod',
+ adminConfig,
+ apiPath: '/api/graphql',
+ adminPath: '',
+};
diff --git a/examples/custom-field-view/app/(admin)/[listKey]/[id]/page.tsx b/examples/custom-field-view/app/(admin)/[listKey]/[id]/page.tsx
new file mode 100644
index 00000000000..c5d7ea2be62
--- /dev/null
+++ b/examples/custom-field-view/app/(admin)/[listKey]/[id]/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { ItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage'
+
+export default ItemPage
diff --git a/examples/custom-field-view/app/(admin)/[listKey]/create/page.tsx b/examples/custom-field-view/app/(admin)/[listKey]/create/page.tsx
new file mode 100644
index 00000000000..d6042acaa96
--- /dev/null
+++ b/examples/custom-field-view/app/(admin)/[listKey]/create/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { CreateItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage'
+
+export default CreateItemPage
diff --git a/examples/custom-field-view/app/(admin)/[listKey]/page.tsx b/examples/custom-field-view/app/(admin)/[listKey]/page.tsx
new file mode 100644
index 00000000000..f6e75f8cfab
--- /dev/null
+++ b/examples/custom-field-view/app/(admin)/[listKey]/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { ListPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage'
+
+export default ListPage
diff --git a/examples/custom-field-view/app/(admin)/layout.tsx b/examples/custom-field-view/app/(admin)/layout.tsx
new file mode 100644
index 00000000000..abb5a0f3b2c
--- /dev/null
+++ b/examples/custom-field-view/app/(admin)/layout.tsx
@@ -0,0 +1,16 @@
+'use client'
+import { Layout } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/App'
+import { config } from './.admin'
+
+
+export default function AdminLayout ({
+ children,
+}: {
+ children: React.ReactNode
+}) {
+ return (
+
+ {children}
+
+ )
+}
\ No newline at end of file
diff --git a/examples/custom-field-view/app/(admin)/no-access/page.tsx b/examples/custom-field-view/app/(admin)/no-access/page.tsx
new file mode 100644
index 00000000000..70877231fee
--- /dev/null
+++ b/examples/custom-field-view/app/(admin)/no-access/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { getNoAccessPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/NoAccessPage'
+
+export default getNoAccessPage({ sessionsEnabled: false })
diff --git a/examples/custom-field-view/app/(admin)/page.tsx b/examples/custom-field-view/app/(admin)/page.tsx
new file mode 100644
index 00000000000..5c268390b0f
--- /dev/null
+++ b/examples/custom-field-view/app/(admin)/page.tsx
@@ -0,0 +1,2 @@
+'use client'
+export { HomePage as default } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/HomePage'
diff --git a/examples/custom-field-view/app/layout.tsx b/examples/custom-field-view/app/layout.tsx
new file mode 100644
index 00000000000..38a4853e3a5
--- /dev/null
+++ b/examples/custom-field-view/app/layout.tsx
@@ -0,0 +1,11 @@
+export default function RootLayout ({
+ children,
+}: {
+ children: React.ReactNode
+}) {
+ return (
+
+
{children}
+
+ )
+}
diff --git a/examples/custom-field-view/next-env.d.ts b/examples/custom-field-view/next-env.d.ts
new file mode 100644
index 00000000000..4f11a03dc6c
--- /dev/null
+++ b/examples/custom-field-view/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/examples/custom-field-view/schema.graphql b/examples/custom-field-view/schema.graphql
index 27d0a6f5ba3..6902e23ef3c 100644
--- a/examples/custom-field-view/schema.graphql
+++ b/examples/custom-field-view/schema.graphql
@@ -9,6 +9,7 @@ type Task {
assignedTo: Person
finishBy: DateTime
relatedLinks: JSON
+ moreLinks: JSON
}
enum TaskPriorityType {
@@ -117,6 +118,7 @@ input TaskUpdateInput {
assignedTo: PersonRelateToOneForUpdateInput
finishBy: DateTime
relatedLinks: JSON
+ moreLinks: JSON
}
input PersonRelateToOneForUpdateInput {
@@ -137,6 +139,7 @@ input TaskCreateInput {
assignedTo: PersonRelateToOneForCreateInput
finishBy: DateTime
relatedLinks: JSON
+ moreLinks: JSON
}
input PersonRelateToOneForCreateInput {
diff --git a/examples/custom-field-view/schema.prisma b/examples/custom-field-view/schema.prisma
index 32e04e70c82..fb3278a7169 100644
--- a/examples/custom-field-view/schema.prisma
+++ b/examples/custom-field-view/schema.prisma
@@ -21,6 +21,7 @@ model Task {
assignedToId String? @map("assignedTo")
finishBy DateTime?
relatedLinks String?
+ moreLinks String?
@@index([assignedToId])
}
diff --git a/examples/custom-field-view/schema.ts b/examples/custom-field-view/schema.ts
index 8a6516cd78d..ed877eee26f 100644
--- a/examples/custom-field-view/schema.ts
+++ b/examples/custom-field-view/schema.ts
@@ -30,6 +30,14 @@ export const lists = {
itemView: { fieldMode: 'edit' },
},
}),
+ moreLinks: json({
+ ui: {
+ views: '@/fields/related-links/components',
+ createView: { fieldMode: 'edit' },
+ listView: { fieldMode: 'hidden' },
+ itemView: { fieldMode: 'edit' },
+ },
+ }),
},
}),
Person: list({
diff --git a/examples/custom-field-view/tsconfig.json b/examples/custom-field-view/tsconfig.json
new file mode 100644
index 00000000000..3b0afd8f406
--- /dev/null
+++ b/examples/custom-field-view/tsconfig.json
@@ -0,0 +1,37 @@
+{
+ "compilerOptions": {
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": false,
+ "noEmit": true,
+ "incremental": true,
+ "module": "esnext",
+ "esModuleInterop": true,
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "paths": {
+ "@/fields/*": ["./fields/*"]
+ },
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ]
+ },
+ "include": [
+ "next-env.d.ts",
+ ".next/types/**/*.ts",
+ "**/*.ts",
+ "**/*.tsx"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
+}
diff --git a/examples/custom-field/app/(admin)/.admin/index.tsx b/examples/custom-field/app/(admin)/.admin/index.tsx
new file mode 100644
index 00000000000..ca1a2d962a6
--- /dev/null
+++ b/examples/custom-field/app/(admin)/.admin/index.tsx
@@ -0,0 +1,19 @@
+/* eslint-disable */
+import * as view0 from "@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view"
+import * as view1 from "../../.././1-text-field/views"
+import * as view2 from "../../.././2-stars-field/views"
+import * as view3 from "../../.././4-conditional-field/views"
+import * as view4 from "../../.././3-pair-field/views"
+import * as view5 from "../../.././3-pair-field-nested/views"
+import * as view6 from "../../.././3-pair-field-json/views"
+
+const adminConfig = {}
+
+export const config = {
+ lazyMetadataQuery: {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"keystone","loc":{"start":22,"end":30}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"adminMeta","loc":{"start":39,"end":48}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"lists","loc":{"start":59,"end":64}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key","loc":{"start":77,"end":80}},"arguments":[],"directives":[],"loc":{"start":77,"end":80}},{"kind":"Field","name":{"kind":"Name","value":"isHidden","loc":{"start":91,"end":99}},"arguments":[],"directives":[],"loc":{"start":91,"end":99}},{"kind":"Field","name":{"kind":"Name","value":"fields","loc":{"start":110,"end":116}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"path","loc":{"start":131,"end":135}},"arguments":[],"directives":[],"loc":{"start":131,"end":135}},{"kind":"Field","name":{"kind":"Name","value":"createView","loc":{"start":148,"end":158}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"fieldMode","loc":{"start":175,"end":184}},"arguments":[],"directives":[],"loc":{"start":175,"end":184}}],"loc":{"start":159,"end":198}},"loc":{"start":148,"end":198}}],"loc":{"start":117,"end":210}},"loc":{"start":110,"end":210}}],"loc":{"start":65,"end":220}},"loc":{"start":59,"end":220}}],"loc":{"start":49,"end":228}},"loc":{"start":39,"end":228}}],"loc":{"start":31,"end":234}},"loc":{"start":22,"end":234}}]}}]},
+ fieldViews: [view0,view1,view2,view3,view4,view5,view6],
+ adminMetaHash: 'fhppxz',
+ adminConfig,
+ apiPath: '/api/graphql',
+ adminPath: '',
+};
diff --git a/examples/custom-field/app/(admin)/[listKey]/[id]/page.tsx b/examples/custom-field/app/(admin)/[listKey]/[id]/page.tsx
new file mode 100644
index 00000000000..c5d7ea2be62
--- /dev/null
+++ b/examples/custom-field/app/(admin)/[listKey]/[id]/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { ItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage'
+
+export default ItemPage
diff --git a/examples/custom-field/app/(admin)/[listKey]/create/page.tsx b/examples/custom-field/app/(admin)/[listKey]/create/page.tsx
new file mode 100644
index 00000000000..d6042acaa96
--- /dev/null
+++ b/examples/custom-field/app/(admin)/[listKey]/create/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { CreateItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage'
+
+export default CreateItemPage
diff --git a/examples/custom-field/app/(admin)/[listKey]/page.tsx b/examples/custom-field/app/(admin)/[listKey]/page.tsx
new file mode 100644
index 00000000000..f6e75f8cfab
--- /dev/null
+++ b/examples/custom-field/app/(admin)/[listKey]/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { ListPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage'
+
+export default ListPage
diff --git a/examples/custom-field/app/(admin)/layout.tsx b/examples/custom-field/app/(admin)/layout.tsx
new file mode 100644
index 00000000000..abb5a0f3b2c
--- /dev/null
+++ b/examples/custom-field/app/(admin)/layout.tsx
@@ -0,0 +1,16 @@
+'use client'
+import { Layout } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/App'
+import { config } from './.admin'
+
+
+export default function AdminLayout ({
+ children,
+}: {
+ children: React.ReactNode
+}) {
+ return (
+
+ {children}
+
+ )
+}
\ No newline at end of file
diff --git a/examples/custom-field/app/(admin)/no-access/page.tsx b/examples/custom-field/app/(admin)/no-access/page.tsx
new file mode 100644
index 00000000000..70877231fee
--- /dev/null
+++ b/examples/custom-field/app/(admin)/no-access/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { getNoAccessPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/NoAccessPage'
+
+export default getNoAccessPage({ sessionsEnabled: false })
diff --git a/examples/custom-field/app/(admin)/page.tsx b/examples/custom-field/app/(admin)/page.tsx
new file mode 100644
index 00000000000..5c268390b0f
--- /dev/null
+++ b/examples/custom-field/app/(admin)/page.tsx
@@ -0,0 +1,2 @@
+'use client'
+export { HomePage as default } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/HomePage'
diff --git a/examples/custom-field/app/layout.tsx b/examples/custom-field/app/layout.tsx
new file mode 100644
index 00000000000..38a4853e3a5
--- /dev/null
+++ b/examples/custom-field/app/layout.tsx
@@ -0,0 +1,11 @@
+export default function RootLayout ({
+ children,
+}: {
+ children: React.ReactNode
+}) {
+ return (
+
+ {children}
+
+ )
+}
diff --git a/examples/custom-field/next-env.d.ts b/examples/custom-field/next-env.d.ts
new file mode 100644
index 00000000000..4f11a03dc6c
--- /dev/null
+++ b/examples/custom-field/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/examples/custom-field/tsconfig.json b/examples/custom-field/tsconfig.json
new file mode 100644
index 00000000000..3b0afd8f406
--- /dev/null
+++ b/examples/custom-field/tsconfig.json
@@ -0,0 +1,37 @@
+{
+ "compilerOptions": {
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": false,
+ "noEmit": true,
+ "incremental": true,
+ "module": "esnext",
+ "esModuleInterop": true,
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "paths": {
+ "@/fields/*": ["./fields/*"]
+ },
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ]
+ },
+ "include": [
+ "next-env.d.ts",
+ ".next/types/**/*.ts",
+ "**/*.ts",
+ "**/*.tsx"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
+}
diff --git a/examples/document-field/next-env.d copy.ts b/examples/document-field/next-env.d copy.ts
new file mode 100644
index 00000000000..4f11a03dc6c
--- /dev/null
+++ b/examples/document-field/next-env.d copy.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/examples/document-field/next-env.d.ts b/examples/document-field/next-env.d.ts
index 7b7aa2c7727..4f11a03dc6c 100644
--- a/examples/document-field/next-env.d.ts
+++ b/examples/document-field/next-env.d.ts
@@ -1,2 +1,5 @@
///
-///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/examples/document-field/next.config.js b/examples/document-field/next.config.js
deleted file mode 100644
index 00184d61daa..00000000000
--- a/examples/document-field/next.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// you don't need this if you're building something outside of the Keystone repo
-
-const withPreconstruct = require('@preconstruct/next')
-
-module.exports = withPreconstruct()
diff --git a/examples/document-field/src/app/(admin)/.admin/index.tsx b/examples/document-field/src/app/(admin)/.admin/index.tsx
new file mode 100644
index 00000000000..e53104746f4
--- /dev/null
+++ b/examples/document-field/src/app/(admin)/.admin/index.tsx
@@ -0,0 +1,18 @@
+/* eslint-disable */
+import * as view0 from "@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/id-field-view"
+import * as view1 from "@keystone-6/core/fields/types/text/views"
+import * as view2 from "@keystone-6/core/fields/types/select/views"
+import * as view3 from "@keystone-6/fields-document/views"
+import * as view4 from "@keystone-6/core/fields/types/timestamp/views"
+import * as view5 from "@keystone-6/core/fields/types/relationship/views"
+
+const adminConfig = {}
+
+export const config = {
+ lazyMetadataQuery: {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"keystone","loc":{"start":22,"end":30}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"adminMeta","loc":{"start":39,"end":48}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"lists","loc":{"start":59,"end":64}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key","loc":{"start":77,"end":80}},"arguments":[],"directives":[],"loc":{"start":77,"end":80}},{"kind":"Field","name":{"kind":"Name","value":"isHidden","loc":{"start":91,"end":99}},"arguments":[],"directives":[],"loc":{"start":91,"end":99}},{"kind":"Field","name":{"kind":"Name","value":"fields","loc":{"start":110,"end":116}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"path","loc":{"start":131,"end":135}},"arguments":[],"directives":[],"loc":{"start":131,"end":135}},{"kind":"Field","name":{"kind":"Name","value":"createView","loc":{"start":148,"end":158}},"arguments":[],"directives":[],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"fieldMode","loc":{"start":175,"end":184}},"arguments":[],"directives":[],"loc":{"start":175,"end":184}}],"loc":{"start":159,"end":198}},"loc":{"start":148,"end":198}}],"loc":{"start":117,"end":210}},"loc":{"start":110,"end":210}}],"loc":{"start":65,"end":220}},"loc":{"start":59,"end":220}}],"loc":{"start":49,"end":228}},"loc":{"start":39,"end":228}}],"loc":{"start":31,"end":234}},"loc":{"start":22,"end":234}}]}}]},
+ fieldViews: [view0,view1,view2,view3,view4,view5],
+ adminMetaHash: '1oos0js',
+ adminConfig,
+ apiPath: '/api/graphql',
+ adminPath: '',
+};
diff --git a/examples/document-field/src/app/(admin)/[listKey]/[id]/page.tsx b/examples/document-field/src/app/(admin)/[listKey]/[id]/page.tsx
new file mode 100644
index 00000000000..c5d7ea2be62
--- /dev/null
+++ b/examples/document-field/src/app/(admin)/[listKey]/[id]/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { ItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ItemPage'
+
+export default ItemPage
diff --git a/examples/document-field/src/app/(admin)/[listKey]/create/page.tsx b/examples/document-field/src/app/(admin)/[listKey]/create/page.tsx
new file mode 100644
index 00000000000..d6042acaa96
--- /dev/null
+++ b/examples/document-field/src/app/(admin)/[listKey]/create/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { CreateItemPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/CreateItemPage'
+
+export default CreateItemPage
diff --git a/examples/document-field/src/app/(admin)/[listKey]/page.tsx b/examples/document-field/src/app/(admin)/[listKey]/page.tsx
new file mode 100644
index 00000000000..f6e75f8cfab
--- /dev/null
+++ b/examples/document-field/src/app/(admin)/[listKey]/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { ListPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/ListPage'
+
+export default ListPage
diff --git a/examples/document-field/src/pages/author/[id].tsx b/examples/document-field/src/app/(admin)/author/[id]/page.tsx
similarity index 58%
rename from examples/document-field/src/pages/author/[id].tsx
rename to examples/document-field/src/app/(admin)/author/[id]/page.tsx
index f3aa3dbdf80..8b44a9869f5 100644
--- a/examples/document-field/src/pages/author/[id].tsx
+++ b/examples/document-field/src/app/(admin)/author/[id]/page.tsx
@@ -2,9 +2,28 @@ import { type GetStaticPathsResult, type GetStaticPropsContext } from 'next'
import Link from 'next/link'
import React from 'react'
import { DocumentRenderer } from '@keystone-6/document-renderer'
-import { fetchGraphQL, gql } from '../../utils'
+import { fetchGraphQL, gql } from '../../../../utils'
-export default function Post ({ author }: { author: any }) {
+export default async function Post ({ params }: any) {
+const data = await fetchGraphQL(
+ gql`
+ query ($id: ID!) {
+ author(where: { id: $id }) {
+ name
+ bio {
+ document
+ }
+ posts(where: { status: { equals: published } }, orderBy: { publishDate: desc }) {
+ id
+ title
+ slug
+ }
+ }
+ }
+ `,
+ { id: params!.id }
+)
+const author = data?.author
return (
{author.name}
@@ -35,25 +54,3 @@ export async function getStaticPaths (): Promise {
fallback: 'blocking',
}
}
-
-export async function getStaticProps ({ params }: GetStaticPropsContext) {
- const data = await fetchGraphQL(
- gql`
- query ($id: ID!) {
- author(where: { id: $id }) {
- name
- bio {
- document
- }
- posts(where: { status: { equals: published } }, orderBy: { publishDate: desc }) {
- id
- title
- slug
- }
- }
- }
- `,
- { id: params!.id }
- )
- return { props: { author: data.author }, revalidate: 60 }
-}
diff --git a/examples/document-field/src/app/(admin)/layout.tsx b/examples/document-field/src/app/(admin)/layout.tsx
new file mode 100644
index 00000000000..abb5a0f3b2c
--- /dev/null
+++ b/examples/document-field/src/app/(admin)/layout.tsx
@@ -0,0 +1,16 @@
+'use client'
+import { Layout } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/App'
+import { config } from './.admin'
+
+
+export default function AdminLayout ({
+ children,
+}: {
+ children: React.ReactNode
+}) {
+ return (
+
+ {children}
+
+ )
+}
\ No newline at end of file
diff --git a/examples/document-field/src/app/(admin)/no-access/page.tsx b/examples/document-field/src/app/(admin)/no-access/page.tsx
new file mode 100644
index 00000000000..70877231fee
--- /dev/null
+++ b/examples/document-field/src/app/(admin)/no-access/page.tsx
@@ -0,0 +1,4 @@
+'use client'
+import { getNoAccessPage } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/NoAccessPage'
+
+export default getNoAccessPage({ sessionsEnabled: false })
diff --git a/examples/document-field/src/app/(admin)/page.tsx b/examples/document-field/src/app/(admin)/page.tsx
new file mode 100644
index 00000000000..5c268390b0f
--- /dev/null
+++ b/examples/document-field/src/app/(admin)/page.tsx
@@ -0,0 +1,2 @@
+'use client'
+export { HomePage as default } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/admin-ui/pages/HomePage'
diff --git a/examples/document-field/src/pages/post/[slug].tsx b/examples/document-field/src/app/(admin)/post/[slug]/page.tsx
similarity index 89%
rename from examples/document-field/src/pages/post/[slug].tsx
rename to examples/document-field/src/app/(admin)/post/[slug]/page.tsx
index eaf941ad802..ab476cde41d 100644
--- a/examples/document-field/src/pages/post/[slug].tsx
+++ b/examples/document-field/src/app/(admin)/post/[slug]/page.tsx
@@ -2,7 +2,7 @@ import { type GetStaticPathsResult, type GetStaticPropsContext } from 'next'
import Link from 'next/link'
import React from 'react'
import { DocumentRenderer, type DocumentRendererProps } from '@keystone-6/document-renderer'
-import { fetchGraphQL, gql } from '../../utils'
+import { fetchGraphQL, gql } from '../../../../utils'
// By default the DocumentRenderer will render unstyled html elements.
// We're customising how headings are rendered here but you can customise
@@ -39,7 +39,26 @@ const renderers: DocumentRendererProps['renderers'] = {
},
}
-export default function Post ({ post }: { post: any }) {
+export default async function Post ({ params }: { params: any }) {
+ const data = await fetchGraphQL(
+ gql`
+ query ($slug: String!) {
+ post(where: { slug: $slug }) {
+ title
+ content {
+ document(hydrateRelationships: true)
+ }
+ publishDate
+ author {
+ id
+ name
+ }
+ }
+ }
+ `,
+ { slug: params!.slug }
+ )
+ const post = data?.post
return (
{post.title}
@@ -73,27 +92,3 @@ export async function getStaticPaths (): Promise {
fallback: 'blocking',
}
}
-
-export async function getStaticProps ({ params }: GetStaticPropsContext) {
- // We use (hydrateRelationships: true) to ensure we have the data we need
- // to render the inline relationships.
- const data = await fetchGraphQL(
- gql`
- query ($slug: String!) {
- post(where: { slug: $slug }) {
- title
- content {
- document(hydrateRelationships: true)
- }
- publishDate
- author {
- id
- name
- }
- }
- }
- `,
- { slug: params!.slug }
- )
- return { props: { post: data.post }, revalidate: 60 }
-}
diff --git a/examples/document-field/src/app/layout.tsx b/examples/document-field/src/app/layout.tsx
new file mode 100644
index 00000000000..38a4853e3a5
--- /dev/null
+++ b/examples/document-field/src/app/layout.tsx
@@ -0,0 +1,11 @@
+export default function RootLayout ({
+ children,
+}: {
+ children: React.ReactNode
+}) {
+ return (
+
+ {children}
+
+ )
+}
diff --git a/examples/document-field/src/pages/index.tsx b/examples/document-field/src/app/page.tsx
similarity index 84%
rename from examples/document-field/src/pages/index.tsx
rename to examples/document-field/src/app/page.tsx
index 737a083edb8..0a58d077bd5 100644
--- a/examples/document-field/src/pages/index.tsx
+++ b/examples/document-field/src/app/page.tsx
@@ -4,7 +4,23 @@ import { fetchGraphQL, gql } from '../utils'
type Author = { id: string, name: string, posts: { id: string, slug: string, title: string }[] }
-export default function Index ({ authors }: { authors: Author[] }) {
+export default async function Index () {
+ const data = await fetchGraphQL(gql`
+ query {
+ authors {
+ id
+ name
+ posts(where: { status: { equals: published } }, orderBy: { publishDate: desc }) {
+ id
+ slug
+ title
+ }
+ }
+ }
+ `)
+
+ const authors: Author[] = data?.authors || []
+
return (
<>
Keystone Blog Project - Home
@@ -27,20 +43,3 @@ export default function Index ({ authors }: { authors: Author[] }) {
>
)
}
-
-export async function getStaticProps () {
- const data = await fetchGraphQL(gql`
- query {
- authors {
- id
- name
- posts(where: { status: { equals: published } }, orderBy: { publishDate: desc }) {
- id
- slug
- title
- }
- }
- }
- `)
- return { props: { authors: data.authors }, revalidate: 30 }
-}
diff --git a/examples/document-field/tsconfig.json b/examples/document-field/tsconfig.json
index 1ed5fb820cb..64857dc28d3 100644
--- a/examples/document-field/tsconfig.json
+++ b/examples/document-field/tsconfig.json
@@ -1,7 +1,11 @@
{
"compilerOptions": {
"target": "esnext",
- "lib": ["dom", "dom.iterable", "esnext"],
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
"allowJs": false,
"skipLibCheck": false,
"strict": true,
@@ -12,8 +16,21 @@
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
- "jsx": "preserve"
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ]
},
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
- "exclude": ["node_modules"]
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ ".next/types/**/*.ts"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
}
diff --git a/packages/auth/src/pages/InitPage.tsx b/packages/auth/src/pages/InitPage.tsx
index 7f76a8f9ca7..75d6ef791f2 100644
--- a/packages/auth/src/pages/InitPage.tsx
+++ b/packages/auth/src/pages/InitPage.tsx
@@ -228,11 +228,11 @@ function InitPage ({
await reinitContext()
if (enableWelcome) return setMode('welcome')
- router.push(adminPath)
+ router.push(adminPath || '/')
}
const onComplete = () => {
- router.push(adminPath)
+ router.push(adminPath || '/')
}
return mode === 'init' ? (
diff --git a/packages/core/src/admin-ui/components/Navigation.tsx b/packages/core/src/admin-ui/components/Navigation.tsx
index a75c4fc52f8..12bbf49c15f 100644
--- a/packages/core/src/admin-ui/components/Navigation.tsx
+++ b/packages/core/src/admin-ui/components/Navigation.tsx
@@ -175,7 +175,7 @@ export const ListNavItem = ({ list }: { list: ListMeta }) => {
const { adminPath } = useKeystone()
return (
{list.label}
diff --git a/packages/core/src/admin-ui/templates/app.ts b/packages/core/src/admin-ui/templates/app.ts
index e86d15527e5..2ed7211ea3e 100644
--- a/packages/core/src/admin-ui/templates/app.ts
+++ b/packages/core/src/admin-ui/templates/app.ts
@@ -47,8 +47,8 @@ export function adminConfigTemplate (
return JSON.stringify(viewRelativeToAppFile)
})
// -- TEMPLATE START
- return `/* eslint-disable */\n${adminMetaRootVal.views
- .map((views, i) => `import * as view${i} from '${views}'`)
+ return `/* eslint-disable */\n${allViews
+ .map((views, i) => `import * as view${i} from ${views}`)
.join('\n')}
${configFileExists
@@ -92,6 +92,23 @@ export default function AdminLayout ({
// -- TEMPLATE END
}
+export function adminRootLayoutTemplate () {
+
+ // -- TEMPLATE START
+ return `export default function RootLayout ({
+ children,
+}: {
+ children: React.ReactNode
+}) {
+ return (
+
+ {children}
+
+ )
+}`
+ // -- TEMPLATE END
+}
+
function getLazyMetadataQuery (
graphqlSchema: GraphQLSchema,
adminMeta: StaticAdminMetaQuery['keystone']['adminMeta']
diff --git a/packages/core/src/admin-ui/templates/index.ts b/packages/core/src/admin-ui/templates/index.ts
index 35720c387ba..d6b2dbf31f6 100644
--- a/packages/core/src/admin-ui/templates/index.ts
+++ b/packages/core/src/admin-ui/templates/index.ts
@@ -4,7 +4,7 @@ import {
type __ResolvedKeystoneConfig
} from '../../types'
import type { AdminMetaRootVal } from '../../lib/create-admin-meta'
-import { adminConfigTemplate, adminLayoutTemplate } from './app'
+import { adminConfigTemplate, adminLayoutTemplate, adminRootLayoutTemplate } from './app'
import { homeTemplate } from './home'
import { listTemplate } from './list'
import { itemTemplate } from './item'
@@ -21,6 +21,7 @@ export const writeAdminFiles = (
return [
{ mode: 'write', src: noAccessTemplate(config.session), outputPath: `no-access/page.${ext}` },
{ mode: 'write', src: adminLayoutTemplate(), outputPath: `layout.${ext}` },
+ { mode: 'write', src: adminRootLayoutTemplate(), outputPath: `../layout.${ext}` },
{
mode: 'write',
src: adminConfigTemplate(
diff --git a/tests/examples-smoke-tests/custom-admin-ui-pages.test.ts b/tests/examples-smoke-tests/custom-admin-ui-pages.test.ts
index a24e461c128..f4dc0fe3280 100644
--- a/tests/examples-smoke-tests/custom-admin-ui-pages.test.ts
+++ b/tests/examples-smoke-tests/custom-admin-ui-pages.test.ts
@@ -12,7 +12,7 @@ exampleProjectTests('custom-admin-ui-pages', browserType => {
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await retry(async () => {
await page.goto('http://localhost:3000/custom-page')
await page.waitForSelector('main h1:has-text("This is a custom Admin UI page")')
diff --git a/tests/examples-smoke-tests/custom-field-view.test.ts b/tests/examples-smoke-tests/custom-field-view.test.ts
index 2ffa043afd1..36290e0cf24 100644
--- a/tests/examples-smoke-tests/custom-field-view.test.ts
+++ b/tests/examples-smoke-tests/custom-field-view.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('custom-field-view', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("People")')])
await page.waitForSelector('a:has-text("Create Person")')
})
diff --git a/tests/examples-smoke-tests/custom-field.test.ts b/tests/examples-smoke-tests/custom-field.test.ts
index 9dc70269031..5211b67abde 100644
--- a/tests/examples-smoke-tests/custom-field.test.ts
+++ b/tests/examples-smoke-tests/custom-field.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('custom-field', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("Posts")')])
await page.waitForSelector('a:has-text("Create Post")')
})
diff --git a/tests/examples-smoke-tests/default-values.test.ts b/tests/examples-smoke-tests/default-values.test.ts
index 113370bbd3c..30f5209a89a 100644
--- a/tests/examples-smoke-tests/default-values.test.ts
+++ b/tests/examples-smoke-tests/default-values.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('default-values', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("People")')])
await page.waitForSelector('a:has-text("Create Person")')
})
diff --git a/tests/examples-smoke-tests/document-field.test.ts b/tests/examples-smoke-tests/document-field.test.ts
index 21143e3f0d1..d8e6e783dd3 100644
--- a/tests/examples-smoke-tests/document-field.test.ts
+++ b/tests/examples-smoke-tests/document-field.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('document-field', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("Authors")')])
await page.waitForSelector('a:has-text("Create Author")')
})
diff --git a/tests/examples-smoke-tests/extend-express-app.test.ts b/tests/examples-smoke-tests/extend-express-app.test.ts
index 19ebd5299e9..dbf3b538498 100644
--- a/tests/examples-smoke-tests/extend-express-app.test.ts
+++ b/tests/examples-smoke-tests/extend-express-app.test.ts
@@ -10,11 +10,11 @@ exampleProjectTests('extend-express-app', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("Posts")')])
await page.waitForSelector('a:has-text("Create Post")')
})
- test.skip('Get Posts', async () => {
+ test('Get Posts', async () => {
const tasks = await fetch('http://localhost:3000/rest/posts', {
method: 'GET',
headers: {
diff --git a/tests/examples-smoke-tests/extend-graphql-schema-graphql-tools.test.ts b/tests/examples-smoke-tests/extend-graphql-schema-graphql-tools.test.ts
index e0d53a3eddd..ca6b4390d06 100644
--- a/tests/examples-smoke-tests/extend-graphql-schema-graphql-tools.test.ts
+++ b/tests/examples-smoke-tests/extend-graphql-schema-graphql-tools.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('extend-graphql-schema-graphql-tools', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("Authors")')])
await page.waitForSelector('a:has-text("Create Author")')
})
diff --git a/tests/examples-smoke-tests/extend-graphql-schema-graphql-ts.test.ts b/tests/examples-smoke-tests/extend-graphql-schema-graphql-ts.test.ts
index 715a986ba58..fe9b7682dfa 100644
--- a/tests/examples-smoke-tests/extend-graphql-schema-graphql-ts.test.ts
+++ b/tests/examples-smoke-tests/extend-graphql-schema-graphql-ts.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('extend-graphql-schema-graphql-ts', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("Authors")')])
await page.waitForSelector('a:has-text("Create Author")')
})
diff --git a/tests/examples-smoke-tests/extend-graphql-schema-nexus.test.ts b/tests/examples-smoke-tests/extend-graphql-schema-nexus.test.ts
index 6446b19caff..740161640f4 100644
--- a/tests/examples-smoke-tests/extend-graphql-schema-nexus.test.ts
+++ b/tests/examples-smoke-tests/extend-graphql-schema-nexus.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('extend-graphql-schema-nexus', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("Authors")')])
await page.waitForSelector('a:has-text("Create Author")')
})
diff --git a/tests/examples-smoke-tests/usecase-blog.test.ts b/tests/examples-smoke-tests/usecase-blog.test.ts
index af119c1fe67..5ed4a70e006 100644
--- a/tests/examples-smoke-tests/usecase-blog.test.ts
+++ b/tests/examples-smoke-tests/usecase-blog.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('usecase-blog', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("Authors")')])
await page.waitForSelector('a:has-text("Create Author")')
})
diff --git a/tests/examples-smoke-tests/usecase-todo.test.ts b/tests/examples-smoke-tests/usecase-todo.test.ts
index 528f2cd4797..9e15bb10729 100644
--- a/tests/examples-smoke-tests/usecase-todo.test.ts
+++ b/tests/examples-smoke-tests/usecase-todo.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('usecase-todo', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("People")')])
await page.waitForSelector('a:has-text("Create Person")')
})
diff --git a/tests/examples-smoke-tests/utils.ts b/tests/examples-smoke-tests/utils.ts
index 50cfb966103..f06cc7ff25f 100644
--- a/tests/examples-smoke-tests/utils.ts
+++ b/tests/examples-smoke-tests/utils.ts
@@ -36,7 +36,7 @@ const treeKill = promisify(_treeKill)
jest.setTimeout(10000000)
export function initFirstItemTest (getPage: () => playwright.Page) {
- test.skip('init first item', async () => {
+ test('init first item', async () => {
const page = getPage()
await page.fill('label:has-text("Name") >> .. >> input', 'Admin')
await page.click('button:has-text("Set Password")')
diff --git a/tests/examples-smoke-tests/virtual-field.test.ts b/tests/examples-smoke-tests/virtual-field.test.ts
index 78de36f2e7e..3d93e45c181 100644
--- a/tests/examples-smoke-tests/virtual-field.test.ts
+++ b/tests/examples-smoke-tests/virtual-field.test.ts
@@ -9,7 +9,7 @@ exampleProjectTests('virtual-field', browserType => {
page = await browser.newPage()
await loadIndex(page)
})
- test.skip('Load list', async () => {
+ test('Load list', async () => {
await Promise.all([page.waitForNavigation(), page.click('h3:has-text("Posts")')])
await page.waitForSelector('a:has-text("Create Post")')
})
diff --git a/examples/custom-admin-ui-logo/next.config.mjs b/tests/test-projects/basic/next.config.mjs
similarity index 56%
rename from examples/custom-admin-ui-logo/next.config.mjs
rename to tests/test-projects/basic/next.config.mjs
index bec106de70d..8f06b183bdf 100644
--- a/examples/custom-admin-ui-logo/next.config.mjs
+++ b/tests/test-projects/basic/next.config.mjs
@@ -1,10 +1,6 @@
// you don't need this if you're building something outside of the Keystone repo
export default {
- experimental: {
- // without this, 'Error: Expected Upload to be a GraphQL nullable type.'
- serverComponentsExternalPackages: ['graphql'],
- },
eslint: {
ignoreDuringBuilds: true,
},
diff --git a/examples/custom-admin-ui-navigation/next.config.mjs b/tests/test-projects/crud-notifications/next.config.mjs
similarity index 56%
rename from examples/custom-admin-ui-navigation/next.config.mjs
rename to tests/test-projects/crud-notifications/next.config.mjs
index bec106de70d..8f06b183bdf 100644
--- a/examples/custom-admin-ui-navigation/next.config.mjs
+++ b/tests/test-projects/crud-notifications/next.config.mjs
@@ -1,10 +1,6 @@
// you don't need this if you're building something outside of the Keystone repo
export default {
- experimental: {
- // without this, 'Error: Expected Upload to be a GraphQL nullable type.'
- serverComponentsExternalPackages: ['graphql'],
- },
eslint: {
ignoreDuringBuilds: true,
},
diff --git a/examples/custom-admin-ui-pages/next.config.mjs b/tests/test-projects/live-reloading/next.config.mjs
similarity index 56%
rename from examples/custom-admin-ui-pages/next.config.mjs
rename to tests/test-projects/live-reloading/next.config.mjs
index bec106de70d..8f06b183bdf 100644
--- a/examples/custom-admin-ui-pages/next.config.mjs
+++ b/tests/test-projects/live-reloading/next.config.mjs
@@ -1,10 +1,6 @@
// you don't need this if you're building something outside of the Keystone repo
export default {
- experimental: {
- // without this, 'Error: Expected Upload to be a GraphQL nullable type.'
- serverComponentsExternalPackages: ['graphql'],
- },
eslint: {
ignoreDuringBuilds: true,
},