diff --git a/packages/next/package.json b/packages/next/package.json index 2eaaf485d..edd8c9c83 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,8 +1,8 @@ { "name": "@payloadcms/next", "version": "3.0.0-alpha.48", - "main": "./src/index.ts", - "types": "./src/index.d.ts", + "main": "./src/index.js", + "types": "./src/index.js", "type": "module", "bin": { "@payloadcms/next": "./dist/bin/index.js" @@ -20,29 +20,15 @@ "prepublishOnly": "pnpm clean && pnpm turbo build" }, "exports": { + ".": { + "import": "./src/index.js", + "require": "./src/index.js", + "types": "./src/index.js" + }, "./*": { - "import": "./dist/exports/*.js", - "require": "./dist/exports/*.js", - "types": "./dist/exports/*.ts" - }, - "./utilities/*": { - "import": "./dist/utilities/*.js", - "require": "./dist/utilities/*.js", - "types": "./src/utilities/*.ts" - }, - "./layouts/*": { - "import": "./dist/layouts/*.js", - "require": "./dist/layouts/*.js", - "types": "./src/layouts/*.ts" - }, - "./views/*": { - "import": "./dist/views/*.js", - "require": "./dist/views/*.js", - "types": "./src/views/*.ts" - }, - "./routes": { - "import": "./dist/routes/index.js", - "require": "./dist/routes/index.js" + "import": "./src/exports/*.ts", + "require": "./src/exports/*.ts", + "types": "./src/exports/*.ts" } }, "devDependencies": { diff --git a/packages/next/src/exports/index.ts b/packages/next/src/exports/index.ts deleted file mode 100644 index fe480d670..000000000 --- a/packages/next/src/exports/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as withPayload } from '../withPayload.js' diff --git a/packages/next/src/exports/routes.ts b/packages/next/src/exports/routes.ts new file mode 100644 index 000000000..9e16c5bc1 --- /dev/null +++ b/packages/next/src/exports/routes.ts @@ -0,0 +1,8 @@ +export { GRAPHQL_PLAYGROUND_GET, GRAPHQL_POST } from '../routes/graphql/index.js' + +export { + DELETE as REST_DELETE, + GET as REST_GET, + PATCH as REST_PATCH, + POST as REST_POST, +} from '../routes/rest/index.js' diff --git a/packages/next/src/exports/views.ts b/packages/next/src/exports/views.ts new file mode 100644 index 000000000..93fd51f20 --- /dev/null +++ b/packages/next/src/exports/views.ts @@ -0,0 +1,2 @@ +export { NotFoundView } from '../views/NotFound/index.js' +export { type GenerateViewMetadata, RootPage, generatePageMetadata } from '../views/Root/index.js' diff --git a/packages/next/src/routes/rest/buildFormState.ts b/packages/next/src/routes/rest/buildFormState.ts index 7433395e6..b96e294dc 100644 --- a/packages/next/src/routes/rest/buildFormState.ts +++ b/packages/next/src/routes/rest/buildFormState.ts @@ -25,6 +25,7 @@ export const buildFormState = async ({ req }: { req: PayloadRequest }) => { const reqData: BuildFormStateArgs = req.data as BuildFormStateArgs const incomingUserSlug = req.user?.collection + console.log('teest') const adminUserSlug = req.payload.config.admin.user // If we have a user slug, test it against the functions diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72fe185d5..c3c078ea0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1511,6 +1511,9 @@ importers: payload: specifier: workspace:* version: link:../packages/payload + typescript: + specifier: 5.4.2 + version: 5.4.2 packages: diff --git a/test/.swcrc b/test/.swcrc new file mode 100644 index 000000000..15eb20bc1 --- /dev/null +++ b/test/.swcrc @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/swcrc", + "sourceMaps": "inline", + "jsc": { + "target": "esnext", + "parser": { + "syntax": "typescript", + "tsx": true, + "dts": true + } + }, + "module": { + "type": "es6" + } +} diff --git a/app/(payload)/admin/[[...segments]]/not-found.tsx b/test/app/(payload)/admin/[[...segments]]/not-found.tsx similarity index 84% rename from app/(payload)/admin/[[...segments]]/not-found.tsx rename to test/app/(payload)/admin/[[...segments]]/not-found.tsx index 01e12371f..6229ae574 100644 --- a/app/(payload)/admin/[[...segments]]/not-found.tsx +++ b/test/app/(payload)/admin/[[...segments]]/not-found.tsx @@ -1,7 +1,7 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ import config from '@payload-config' /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ -import { NotFoundView } from '@payloadcms/next/views/NotFound/index.js' +import { NotFoundView } from '@payloadcms/next/views' type Args = { params: { diff --git a/app/(payload)/admin/[[...segments]]/page.tsx b/test/app/(payload)/admin/[[...segments]]/page.tsx similarity index 96% rename from app/(payload)/admin/[[...segments]]/page.tsx rename to test/app/(payload)/admin/[[...segments]]/page.tsx index ee9bd415c..61be15c88 100644 --- a/app/(payload)/admin/[[...segments]]/page.tsx +++ b/test/app/(payload)/admin/[[...segments]]/page.tsx @@ -3,7 +3,7 @@ import type { Metadata } from 'next' import config from '@payload-config' /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ -import { RootPage, generatePageMetadata } from '@payloadcms/next/views/Root/index.js' +import { RootPage, generatePageMetadata } from '@payloadcms/next/views' type Args = { params: { diff --git a/app/(payload)/api/[...slug]/route.ts b/test/app/(payload)/api/[...slug]/route.ts similarity index 92% rename from app/(payload)/api/[...slug]/route.ts rename to test/app/(payload)/api/[...slug]/route.ts index eacae2961..282e1ad32 100644 --- a/app/(payload)/api/[...slug]/route.ts +++ b/test/app/(payload)/api/[...slug]/route.ts @@ -1,7 +1,7 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY it because it could be re-written at any time. */ import config from '@payload-config' -import { REST_DELETE, REST_GET, REST_PATCH, REST_POST } from '@payloadcms/next/routes/index.js' +import { REST_DELETE, REST_GET, REST_PATCH, REST_POST } from '@payloadcms/next/routes' export const GET = REST_GET(config) export const POST = REST_POST(config) diff --git a/app/(payload)/api/graphql-playground/route.ts b/test/app/(payload)/api/graphql-playground/route.ts similarity index 74% rename from app/(payload)/api/graphql-playground/route.ts rename to test/app/(payload)/api/graphql-playground/route.ts index 7832c8ba9..7b7f27998 100644 --- a/app/(payload)/api/graphql-playground/route.ts +++ b/test/app/(payload)/api/graphql-playground/route.ts @@ -1,6 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY it because it could be re-written at any time. */ import config from '@payload-config' -import { GRAPHQL_PLAYGROUND_GET } from '@payloadcms/next/routes/index.js' +import { GRAPHQL_PLAYGROUND_GET } from '@payloadcms/next/routes' export const GET = GRAPHQL_PLAYGROUND_GET(config) diff --git a/app/(payload)/api/graphql/route.ts b/test/app/(payload)/api/graphql/route.ts similarity index 75% rename from app/(payload)/api/graphql/route.ts rename to test/app/(payload)/api/graphql/route.ts index 4caee1b7c..c2723e439 100644 --- a/app/(payload)/api/graphql/route.ts +++ b/test/app/(payload)/api/graphql/route.ts @@ -1,6 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY it because it could be re-written at any time. */ import config from '@payload-config' -import { GRAPHQL_POST } from '@payloadcms/next/routes/index.js' +import { GRAPHQL_POST } from '@payloadcms/next/routes' export const POST = GRAPHQL_POST(config) diff --git a/app/(payload)/layout.tsx b/test/app/(payload)/layout.tsx similarity index 84% rename from app/(payload)/layout.tsx rename to test/app/(payload)/layout.tsx index 88fedb404..78db7265e 100644 --- a/app/(payload)/layout.tsx +++ b/test/app/(payload)/layout.tsx @@ -1,6 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ import configPromise from '@payload-config' -import { RootLayout } from '@payloadcms/next/layouts/Root/index.js' +import { RootLayout } from '@payloadcms/next/layouts' /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ import React from 'react' diff --git a/app/live-preview/(pages)/[slug]/page.client.tsx b/test/app/live-preview/(pages)/[slug]/page.client.tsx similarity index 100% rename from app/live-preview/(pages)/[slug]/page.client.tsx rename to test/app/live-preview/(pages)/[slug]/page.client.tsx diff --git a/app/live-preview/(pages)/[slug]/page.tsx b/test/app/live-preview/(pages)/[slug]/page.tsx similarity index 100% rename from app/live-preview/(pages)/[slug]/page.tsx rename to test/app/live-preview/(pages)/[slug]/page.tsx diff --git a/app/live-preview/(pages)/posts/[slug]/page.client.tsx b/test/app/live-preview/(pages)/posts/[slug]/page.client.tsx similarity index 100% rename from app/live-preview/(pages)/posts/[slug]/page.client.tsx rename to test/app/live-preview/(pages)/posts/[slug]/page.client.tsx diff --git a/app/live-preview/(pages)/posts/[slug]/page.tsx b/test/app/live-preview/(pages)/posts/[slug]/page.tsx similarity index 100% rename from app/live-preview/(pages)/posts/[slug]/page.tsx rename to test/app/live-preview/(pages)/posts/[slug]/page.tsx diff --git a/app/live-preview/_api/fetchDoc.ts b/test/app/live-preview/_api/fetchDoc.ts similarity index 100% rename from app/live-preview/_api/fetchDoc.ts rename to test/app/live-preview/_api/fetchDoc.ts diff --git a/app/live-preview/_api/fetchDocs.ts b/test/app/live-preview/_api/fetchDocs.ts similarity index 100% rename from app/live-preview/_api/fetchDocs.ts rename to test/app/live-preview/_api/fetchDocs.ts diff --git a/app/live-preview/_api/fetchFooter.ts b/test/app/live-preview/_api/fetchFooter.ts similarity index 100% rename from app/live-preview/_api/fetchFooter.ts rename to test/app/live-preview/_api/fetchFooter.ts diff --git a/app/live-preview/_api/fetchHeader.ts b/test/app/live-preview/_api/fetchHeader.ts similarity index 100% rename from app/live-preview/_api/fetchHeader.ts rename to test/app/live-preview/_api/fetchHeader.ts diff --git a/app/live-preview/_api/serverURL.ts b/test/app/live-preview/_api/serverURL.ts similarity index 100% rename from app/live-preview/_api/serverURL.ts rename to test/app/live-preview/_api/serverURL.ts diff --git a/app/live-preview/_blocks/ArchiveBlock/index.module.scss b/test/app/live-preview/_blocks/ArchiveBlock/index.module.scss similarity index 100% rename from app/live-preview/_blocks/ArchiveBlock/index.module.scss rename to test/app/live-preview/_blocks/ArchiveBlock/index.module.scss diff --git a/app/live-preview/_blocks/ArchiveBlock/index.tsx b/test/app/live-preview/_blocks/ArchiveBlock/index.tsx similarity index 100% rename from app/live-preview/_blocks/ArchiveBlock/index.tsx rename to test/app/live-preview/_blocks/ArchiveBlock/index.tsx diff --git a/app/live-preview/_blocks/ArchiveBlock/types.ts b/test/app/live-preview/_blocks/ArchiveBlock/types.ts similarity index 100% rename from app/live-preview/_blocks/ArchiveBlock/types.ts rename to test/app/live-preview/_blocks/ArchiveBlock/types.ts diff --git a/app/live-preview/_blocks/CallToAction/index.module.scss b/test/app/live-preview/_blocks/CallToAction/index.module.scss similarity index 100% rename from app/live-preview/_blocks/CallToAction/index.module.scss rename to test/app/live-preview/_blocks/CallToAction/index.module.scss diff --git a/app/live-preview/_blocks/CallToAction/index.tsx b/test/app/live-preview/_blocks/CallToAction/index.tsx similarity index 100% rename from app/live-preview/_blocks/CallToAction/index.tsx rename to test/app/live-preview/_blocks/CallToAction/index.tsx diff --git a/app/live-preview/_blocks/Content/index.module.scss b/test/app/live-preview/_blocks/Content/index.module.scss similarity index 100% rename from app/live-preview/_blocks/Content/index.module.scss rename to test/app/live-preview/_blocks/Content/index.module.scss diff --git a/app/live-preview/_blocks/Content/index.tsx b/test/app/live-preview/_blocks/Content/index.tsx similarity index 100% rename from app/live-preview/_blocks/Content/index.tsx rename to test/app/live-preview/_blocks/Content/index.tsx diff --git a/app/live-preview/_blocks/MediaBlock/index.module.scss b/test/app/live-preview/_blocks/MediaBlock/index.module.scss similarity index 100% rename from app/live-preview/_blocks/MediaBlock/index.module.scss rename to test/app/live-preview/_blocks/MediaBlock/index.module.scss diff --git a/app/live-preview/_blocks/MediaBlock/index.tsx b/test/app/live-preview/_blocks/MediaBlock/index.tsx similarity index 100% rename from app/live-preview/_blocks/MediaBlock/index.tsx rename to test/app/live-preview/_blocks/MediaBlock/index.tsx diff --git a/app/live-preview/_blocks/RelatedPosts/index.module.scss b/test/app/live-preview/_blocks/RelatedPosts/index.module.scss similarity index 100% rename from app/live-preview/_blocks/RelatedPosts/index.module.scss rename to test/app/live-preview/_blocks/RelatedPosts/index.module.scss diff --git a/app/live-preview/_blocks/RelatedPosts/index.tsx b/test/app/live-preview/_blocks/RelatedPosts/index.tsx similarity index 100% rename from app/live-preview/_blocks/RelatedPosts/index.tsx rename to test/app/live-preview/_blocks/RelatedPosts/index.tsx diff --git a/app/live-preview/_blocks/Relationships/index.module.scss b/test/app/live-preview/_blocks/Relationships/index.module.scss similarity index 100% rename from app/live-preview/_blocks/Relationships/index.module.scss rename to test/app/live-preview/_blocks/Relationships/index.module.scss diff --git a/app/live-preview/_blocks/Relationships/index.tsx b/test/app/live-preview/_blocks/Relationships/index.tsx similarity index 100% rename from app/live-preview/_blocks/Relationships/index.tsx rename to test/app/live-preview/_blocks/Relationships/index.tsx diff --git a/app/live-preview/_components/BackgroundColor/index.module.scss b/test/app/live-preview/_components/BackgroundColor/index.module.scss similarity index 100% rename from app/live-preview/_components/BackgroundColor/index.module.scss rename to test/app/live-preview/_components/BackgroundColor/index.module.scss diff --git a/app/live-preview/_components/BackgroundColor/index.tsx b/test/app/live-preview/_components/BackgroundColor/index.tsx similarity index 100% rename from app/live-preview/_components/BackgroundColor/index.tsx rename to test/app/live-preview/_components/BackgroundColor/index.tsx diff --git a/app/live-preview/_components/Blocks/index.tsx b/test/app/live-preview/_components/Blocks/index.tsx similarity index 100% rename from app/live-preview/_components/Blocks/index.tsx rename to test/app/live-preview/_components/Blocks/index.tsx diff --git a/app/live-preview/_components/Button/index.module.scss b/test/app/live-preview/_components/Button/index.module.scss similarity index 100% rename from app/live-preview/_components/Button/index.module.scss rename to test/app/live-preview/_components/Button/index.module.scss diff --git a/app/live-preview/_components/Button/index.tsx b/test/app/live-preview/_components/Button/index.tsx similarity index 100% rename from app/live-preview/_components/Button/index.tsx rename to test/app/live-preview/_components/Button/index.tsx diff --git a/app/live-preview/_components/Card/index.module.scss b/test/app/live-preview/_components/Card/index.module.scss similarity index 100% rename from app/live-preview/_components/Card/index.module.scss rename to test/app/live-preview/_components/Card/index.module.scss diff --git a/app/live-preview/_components/Card/index.tsx b/test/app/live-preview/_components/Card/index.tsx similarity index 100% rename from app/live-preview/_components/Card/index.tsx rename to test/app/live-preview/_components/Card/index.tsx diff --git a/app/live-preview/_components/Chevron/index.tsx b/test/app/live-preview/_components/Chevron/index.tsx similarity index 100% rename from app/live-preview/_components/Chevron/index.tsx rename to test/app/live-preview/_components/Chevron/index.tsx diff --git a/app/live-preview/_components/CollectionArchive/PopulateByCollection/index.module.scss b/test/app/live-preview/_components/CollectionArchive/PopulateByCollection/index.module.scss similarity index 100% rename from app/live-preview/_components/CollectionArchive/PopulateByCollection/index.module.scss rename to test/app/live-preview/_components/CollectionArchive/PopulateByCollection/index.module.scss diff --git a/app/live-preview/_components/CollectionArchive/PopulateByCollection/index.tsx b/test/app/live-preview/_components/CollectionArchive/PopulateByCollection/index.tsx similarity index 100% rename from app/live-preview/_components/CollectionArchive/PopulateByCollection/index.tsx rename to test/app/live-preview/_components/CollectionArchive/PopulateByCollection/index.tsx diff --git a/app/live-preview/_components/CollectionArchive/PopulateBySelection/index.module.scss b/test/app/live-preview/_components/CollectionArchive/PopulateBySelection/index.module.scss similarity index 100% rename from app/live-preview/_components/CollectionArchive/PopulateBySelection/index.module.scss rename to test/app/live-preview/_components/CollectionArchive/PopulateBySelection/index.module.scss diff --git a/app/live-preview/_components/CollectionArchive/PopulateBySelection/index.tsx b/test/app/live-preview/_components/CollectionArchive/PopulateBySelection/index.tsx similarity index 100% rename from app/live-preview/_components/CollectionArchive/PopulateBySelection/index.tsx rename to test/app/live-preview/_components/CollectionArchive/PopulateBySelection/index.tsx diff --git a/app/live-preview/_components/CollectionArchive/index.tsx b/test/app/live-preview/_components/CollectionArchive/index.tsx similarity index 100% rename from app/live-preview/_components/CollectionArchive/index.tsx rename to test/app/live-preview/_components/CollectionArchive/index.tsx diff --git a/app/live-preview/_components/Footer/index.module.scss b/test/app/live-preview/_components/Footer/index.module.scss similarity index 100% rename from app/live-preview/_components/Footer/index.module.scss rename to test/app/live-preview/_components/Footer/index.module.scss diff --git a/app/live-preview/_components/Footer/index.tsx b/test/app/live-preview/_components/Footer/index.tsx similarity index 100% rename from app/live-preview/_components/Footer/index.tsx rename to test/app/live-preview/_components/Footer/index.tsx diff --git a/app/live-preview/_components/Gutter/index.module.scss b/test/app/live-preview/_components/Gutter/index.module.scss similarity index 100% rename from app/live-preview/_components/Gutter/index.module.scss rename to test/app/live-preview/_components/Gutter/index.module.scss diff --git a/app/live-preview/_components/Gutter/index.tsx b/test/app/live-preview/_components/Gutter/index.tsx similarity index 100% rename from app/live-preview/_components/Gutter/index.tsx rename to test/app/live-preview/_components/Gutter/index.tsx diff --git a/app/live-preview/_components/Header/Nav/index.module.scss b/test/app/live-preview/_components/Header/Nav/index.module.scss similarity index 100% rename from app/live-preview/_components/Header/Nav/index.module.scss rename to test/app/live-preview/_components/Header/Nav/index.module.scss diff --git a/app/live-preview/_components/Header/Nav/index.tsx b/test/app/live-preview/_components/Header/Nav/index.tsx similarity index 100% rename from app/live-preview/_components/Header/Nav/index.tsx rename to test/app/live-preview/_components/Header/Nav/index.tsx diff --git a/app/live-preview/_components/Header/index.module.scss b/test/app/live-preview/_components/Header/index.module.scss similarity index 100% rename from app/live-preview/_components/Header/index.module.scss rename to test/app/live-preview/_components/Header/index.module.scss diff --git a/app/live-preview/_components/Header/index.tsx b/test/app/live-preview/_components/Header/index.tsx similarity index 100% rename from app/live-preview/_components/Header/index.tsx rename to test/app/live-preview/_components/Header/index.tsx diff --git a/app/live-preview/_components/Hero/index.tsx b/test/app/live-preview/_components/Hero/index.tsx similarity index 100% rename from app/live-preview/_components/Hero/index.tsx rename to test/app/live-preview/_components/Hero/index.tsx diff --git a/app/live-preview/_components/Link/index.tsx b/test/app/live-preview/_components/Link/index.tsx similarity index 100% rename from app/live-preview/_components/Link/index.tsx rename to test/app/live-preview/_components/Link/index.tsx diff --git a/app/live-preview/_components/Media/Image/index.module.scss b/test/app/live-preview/_components/Media/Image/index.module.scss similarity index 100% rename from app/live-preview/_components/Media/Image/index.module.scss rename to test/app/live-preview/_components/Media/Image/index.module.scss diff --git a/app/live-preview/_components/Media/Image/index.tsx b/test/app/live-preview/_components/Media/Image/index.tsx similarity index 100% rename from app/live-preview/_components/Media/Image/index.tsx rename to test/app/live-preview/_components/Media/Image/index.tsx diff --git a/app/live-preview/_components/Media/Video/index.module.scss b/test/app/live-preview/_components/Media/Video/index.module.scss similarity index 100% rename from app/live-preview/_components/Media/Video/index.module.scss rename to test/app/live-preview/_components/Media/Video/index.module.scss diff --git a/app/live-preview/_components/Media/Video/index.tsx b/test/app/live-preview/_components/Media/Video/index.tsx similarity index 100% rename from app/live-preview/_components/Media/Video/index.tsx rename to test/app/live-preview/_components/Media/Video/index.tsx diff --git a/app/live-preview/_components/Media/index.tsx b/test/app/live-preview/_components/Media/index.tsx similarity index 100% rename from app/live-preview/_components/Media/index.tsx rename to test/app/live-preview/_components/Media/index.tsx diff --git a/app/live-preview/_components/Media/types.ts b/test/app/live-preview/_components/Media/types.ts similarity index 100% rename from app/live-preview/_components/Media/types.ts rename to test/app/live-preview/_components/Media/types.ts diff --git a/app/live-preview/_components/PageRange/index.module.scss b/test/app/live-preview/_components/PageRange/index.module.scss similarity index 100% rename from app/live-preview/_components/PageRange/index.module.scss rename to test/app/live-preview/_components/PageRange/index.module.scss diff --git a/app/live-preview/_components/PageRange/index.tsx b/test/app/live-preview/_components/PageRange/index.tsx similarity index 100% rename from app/live-preview/_components/PageRange/index.tsx rename to test/app/live-preview/_components/PageRange/index.tsx diff --git a/app/live-preview/_components/Pagination/index.module.scss b/test/app/live-preview/_components/Pagination/index.module.scss similarity index 100% rename from app/live-preview/_components/Pagination/index.module.scss rename to test/app/live-preview/_components/Pagination/index.module.scss diff --git a/app/live-preview/_components/Pagination/index.tsx b/test/app/live-preview/_components/Pagination/index.tsx similarity index 100% rename from app/live-preview/_components/Pagination/index.tsx rename to test/app/live-preview/_components/Pagination/index.tsx diff --git a/app/live-preview/_components/RichText/index.module.scss b/test/app/live-preview/_components/RichText/index.module.scss similarity index 100% rename from app/live-preview/_components/RichText/index.module.scss rename to test/app/live-preview/_components/RichText/index.module.scss diff --git a/app/live-preview/_components/RichText/index.tsx b/test/app/live-preview/_components/RichText/index.tsx similarity index 100% rename from app/live-preview/_components/RichText/index.tsx rename to test/app/live-preview/_components/RichText/index.tsx diff --git a/app/live-preview/_components/RichText/serializeLexical.tsx b/test/app/live-preview/_components/RichText/serializeLexical.tsx similarity index 100% rename from app/live-preview/_components/RichText/serializeLexical.tsx rename to test/app/live-preview/_components/RichText/serializeLexical.tsx diff --git a/app/live-preview/_components/RichText/serializeSlate.tsx b/test/app/live-preview/_components/RichText/serializeSlate.tsx similarity index 100% rename from app/live-preview/_components/RichText/serializeSlate.tsx rename to test/app/live-preview/_components/RichText/serializeSlate.tsx diff --git a/app/live-preview/_components/VerticalPadding/index.module.scss b/test/app/live-preview/_components/VerticalPadding/index.module.scss similarity index 100% rename from app/live-preview/_components/VerticalPadding/index.module.scss rename to test/app/live-preview/_components/VerticalPadding/index.module.scss diff --git a/app/live-preview/_components/VerticalPadding/index.tsx b/test/app/live-preview/_components/VerticalPadding/index.tsx similarity index 100% rename from app/live-preview/_components/VerticalPadding/index.tsx rename to test/app/live-preview/_components/VerticalPadding/index.tsx diff --git a/app/live-preview/_css/app.scss b/test/app/live-preview/_css/app.scss similarity index 100% rename from app/live-preview/_css/app.scss rename to test/app/live-preview/_css/app.scss diff --git a/app/live-preview/_css/colors.scss b/test/app/live-preview/_css/colors.scss similarity index 100% rename from app/live-preview/_css/colors.scss rename to test/app/live-preview/_css/colors.scss diff --git a/app/live-preview/_css/common.scss b/test/app/live-preview/_css/common.scss similarity index 100% rename from app/live-preview/_css/common.scss rename to test/app/live-preview/_css/common.scss diff --git a/app/live-preview/_css/queries.scss b/test/app/live-preview/_css/queries.scss similarity index 100% rename from app/live-preview/_css/queries.scss rename to test/app/live-preview/_css/queries.scss diff --git a/app/live-preview/_css/type.scss b/test/app/live-preview/_css/type.scss similarity index 100% rename from app/live-preview/_css/type.scss rename to test/app/live-preview/_css/type.scss diff --git a/app/live-preview/_heros/HighImpact/index.module.scss b/test/app/live-preview/_heros/HighImpact/index.module.scss similarity index 100% rename from app/live-preview/_heros/HighImpact/index.module.scss rename to test/app/live-preview/_heros/HighImpact/index.module.scss diff --git a/app/live-preview/_heros/HighImpact/index.tsx b/test/app/live-preview/_heros/HighImpact/index.tsx similarity index 100% rename from app/live-preview/_heros/HighImpact/index.tsx rename to test/app/live-preview/_heros/HighImpact/index.tsx diff --git a/app/live-preview/_heros/LowImpact/index.module.scss b/test/app/live-preview/_heros/LowImpact/index.module.scss similarity index 100% rename from app/live-preview/_heros/LowImpact/index.module.scss rename to test/app/live-preview/_heros/LowImpact/index.module.scss diff --git a/app/live-preview/_heros/LowImpact/index.tsx b/test/app/live-preview/_heros/LowImpact/index.tsx similarity index 100% rename from app/live-preview/_heros/LowImpact/index.tsx rename to test/app/live-preview/_heros/LowImpact/index.tsx diff --git a/app/live-preview/_heros/PostHero/index.module.scss b/test/app/live-preview/_heros/PostHero/index.module.scss similarity index 100% rename from app/live-preview/_heros/PostHero/index.module.scss rename to test/app/live-preview/_heros/PostHero/index.module.scss diff --git a/app/live-preview/_heros/PostHero/index.tsx b/test/app/live-preview/_heros/PostHero/index.tsx similarity index 100% rename from app/live-preview/_heros/PostHero/index.tsx rename to test/app/live-preview/_heros/PostHero/index.tsx diff --git a/app/live-preview/_utilities/formatDateTime.ts b/test/app/live-preview/_utilities/formatDateTime.ts similarity index 100% rename from app/live-preview/_utilities/formatDateTime.ts rename to test/app/live-preview/_utilities/formatDateTime.ts diff --git a/app/live-preview/_utilities/toKebabCase.ts b/test/app/live-preview/_utilities/toKebabCase.ts similarity index 100% rename from app/live-preview/_utilities/toKebabCase.ts rename to test/app/live-preview/_utilities/toKebabCase.ts diff --git a/app/live-preview/cssVariables.js b/test/app/live-preview/cssVariables.js similarity index 100% rename from app/live-preview/cssVariables.js rename to test/app/live-preview/cssVariables.js diff --git a/app/live-preview/layout.tsx b/test/app/live-preview/layout.tsx similarity index 100% rename from app/live-preview/layout.tsx rename to test/app/live-preview/layout.tsx diff --git a/app/live-preview/not-found.tsx b/test/app/live-preview/not-found.tsx similarity index 100% rename from app/live-preview/not-found.tsx rename to test/app/live-preview/not-found.tsx diff --git a/app/live-preview/page.tsx b/test/app/live-preview/page.tsx similarity index 100% rename from app/live-preview/page.tsx rename to test/app/live-preview/page.tsx diff --git a/app/my-route/route.ts b/test/app/my-route/route.ts similarity index 100% rename from app/my-route/route.ts rename to test/app/my-route/route.ts diff --git a/test/auth/e2e.spec.ts b/test/auth/e2e.spec.ts index c7a86d185..93a31c1a0 100644 --- a/test/auth/e2e.spec.ts +++ b/test/auth/e2e.spec.ts @@ -1,11 +1,10 @@ import type { Page } from '@playwright/test' +import type { Payload } from 'payload' import { expect, test } from '@playwright/test' import path from 'path' import { fileURLToPath } from 'url' -import type { Payload } from 'payload' - import { initPageConsoleErrorCatch, login, saveDocAndAssert } from '../helpers.js' import { AdminUrlUtil } from '../helpers/adminUrlUtil.js' import { initPayloadE2E } from '../helpers/initPayloadE2E.js' diff --git a/test/dev.ts b/test/dev.js similarity index 100% rename from test/dev.ts rename to test/dev.js diff --git a/test/jest.config.js b/test/jest.config.js new file mode 100644 index 000000000..41f2102af --- /dev/null +++ b/test/jest.config.js @@ -0,0 +1,21 @@ +/** @type {import('jest').Config} */ +const customJestConfig = { + extensionsToTreatAsEsm: ['.ts', '.tsx'], + setupFilesAfterEnv: ['/jest.setup.ts'], + moduleNameMapper: { + '\\.(css|scss)$': '/helpers/mocks/emptyModule.js', + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '/test/helpers/mocks/fileMock.js', + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + reporters: ['default', ['github-actions', { silent: false }], 'summary'], + testEnvironment: 'node', + testMatch: ['/**/*int.spec.ts'], + testTimeout: 90000, + transform: { + '^.+\\.(t|j)sx?$': ['@swc/jest'], + }, + verbose: true, +} + +export default customJestConfig diff --git a/test/next-env.d.ts b/test/next-env.d.ts new file mode 100644 index 000000000..4f11a03dc --- /dev/null +++ b/test/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/test/next.config.mjs b/test/next.config.mjs new file mode 100644 index 000000000..58c1e47cc --- /dev/null +++ b/test/next.config.mjs @@ -0,0 +1,34 @@ +import bundleAnalyzer from '@next/bundle-analyzer' + +import { withPayload } from '@payloadcms/next' + +const withBundleAnalyzer = bundleAnalyzer({ + enabled: process.env.ANALYZE === 'true', +}) + +// eslint-disable-next-line no-restricted-exports +export default withBundleAnalyzer( + withPayload({ + reactStrictMode: false, + async redirects() { + return [ + { + destination: '/admin', + permanent: true, + source: '/', + }, + ] + }, + images: { + domains: ['localhost'], + }, + webpack: (webpackConfig) => { + webpackConfig.resolve.extensionAlias = { + '.cjs': ['.cts', '.cjs'], + '.js': ['.ts', '.tsx', '.js', '.jsx'], + '.mjs': ['.mts', '.mjs'], + } + return webpackConfig + }, + }), +) diff --git a/test/package.json b/test/package.json index 30de34837..efe5f2455 100644 --- a/test/package.json +++ b/test/package.json @@ -4,7 +4,7 @@ "description": "Payload test suite", "private": true, "scripts": { - "dev": "pnpm -C \"../\" run dev", + "dev": "cross-env NODE_OPTIONS=--no-deprecation node ./dev.js", "test": "pnpm -C \"../\" run test", "test:e2e": "pnpm -C \"../\" run test:e2e", "test:int": "pnpm -C \"../\" run test:int", @@ -12,6 +12,7 @@ }, "type": "module", "devDependencies": { + "typescript": "5.4.2", "@payloadcms/db-mongodb": "workspace:*", "@payloadcms/db-postgres": "workspace:*", "@payloadcms/eslint-config": "workspace:*", diff --git a/test/playwright.bail.config.ts b/test/playwright.bail.config.ts new file mode 100644 index 000000000..e74a4d684 --- /dev/null +++ b/test/playwright.bail.config.ts @@ -0,0 +1,10 @@ +import type { PlaywrightTestConfig } from '@playwright/test' + +import baseConfig from './playwright.config.js' + +const config: PlaywrightTestConfig = { + ...baseConfig, + maxFailures: 1, +} + +export default config diff --git a/test/playwright.config.ts b/test/playwright.config.ts new file mode 100644 index 000000000..2ea0683f6 --- /dev/null +++ b/test/playwright.config.ts @@ -0,0 +1,17 @@ +import { defineConfig } from '@playwright/test' + +export default defineConfig({ + // Look for test files in the "test" directory, relative to this configuration file + testDir: '', + testMatch: '*e2e.spec.ts', + timeout: 180000, // 3 minutes + use: { + screenshot: 'only-on-failure', + trace: 'retain-on-failure', + video: 'retain-on-failure', + }, + expect: { + timeout: 45000, + }, + workers: 16, +}) diff --git a/test/testHooks.ts b/test/testHooks.js similarity index 93% rename from test/testHooks.ts rename to test/testHooks.js index 67d524a1f..78e4074e0 100644 --- a/test/testHooks.ts +++ b/test/testHooks.js @@ -7,12 +7,7 @@ const { readFile, writeFile, rm } = promises const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) -type TestHooks = { - afterTest: () => Promise - beforeTest: () => Promise -} - -export const createTestHooks = async (testSuiteName = '_community'): Promise => { +export const createTestHooks = async (testSuiteName = '_community') => { const tsConfigPath = path.resolve(dirname, '..', 'tsconfig.json') const tsConfig = await json5.parse(await readFile(tsConfigPath, 'utf8')) const originalPayloadConfigTsValue = diff --git a/test/tsconfig.json b/test/tsconfig.json index 0c84f0d32..67b704ce7 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "noEmit": true, - "rootDir": "..", /* Specify the root folder within your source files. */ + "rootDir": ".", /* Specify the root folder within your source files. */ "declaration": true, "declarationMap": true, "target": "esnext", @@ -34,15 +34,24 @@ } ], "paths": { - + "@payload-config": [ + "./auth/config.ts" + ] } }, - "exclude": ["dist", "build", "node_modules", ".eslintrc.js", "dist/**/*.js", "**/dist/**/*.js"], + "exclude": [ + "dist", + "build", + "node_modules", + ".eslintrc.js", + "dist/**/*.js", + "**/dist/**/*.js" + ], "include": [ "./**/*.ts", - "../packages/**/src/**/*.ts", - "../packages/**/src/**/*.tsx" + "../packages/**/*.ts", + "../packages/**/*.tsx", + ".next/types/**/*.ts" ], - "references": [], + "references": [] } - diff --git a/tsconfig.json b/tsconfig.json index c6558a203..f60454489 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -171,4 +171,4 @@ "app/**/*.tsx", "scripts/**/*.ts" ] -} +} \ No newline at end of file