diff --git a/.eslintignore b/.eslintignore index fa111f770..e7b742877 100644 --- a/.eslintignore +++ b/.eslintignore @@ -10,3 +10,4 @@ **/temp playwright.config.ts jest.config.js +test/live-preview/next-app diff --git a/test/_community/int.spec.ts b/test/_community/int.spec.ts index 62b341b31..ae28bceb8 100644 --- a/test/_community/int.spec.ts +++ b/test/_community/int.spec.ts @@ -1,9 +1,8 @@ -import type { Payload } from '../../packages/payload/src/index.js' +import type { Payload } from '../../packages/payload/types.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' -import { getPayload } from '../../packages/payload/src/index.js' import { devUser } from '../credentials.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import { postsSlug } from './collections/Posts/index.js' import configPromise from './config.js' @@ -18,9 +17,8 @@ describe('_Community Tests', () => { // Boilerplate test setup/teardown // --__--__--__--__--__--__--__--__--__ beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + const initialized = await initPayloadInt(configPromise) + ;({ payload, restClient } = initialized) const data = await restClient .POST('/users/login', { diff --git a/test/access-control/int.spec.ts b/test/access-control/int.spec.ts index 33a6668d0..27af91dc1 100644 --- a/test/access-control/int.spec.ts +++ b/test/access-control/int.spec.ts @@ -2,10 +2,8 @@ import type { Payload, PayloadRequest } from '../../packages/payload/src/types/i import type { Post, RelyOnRequestHeader, Restricted } from './payload-types.js' import { Forbidden } from '../../packages/payload/src/errors/index.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { startMemoryDB } from '../startMemoryDB.js' -import configPromise from './config.js' -import { requestHeaders } from './config.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' +import configPromise, { requestHeaders } from './config.js' import { firstArrayText, hiddenAccessSlug, @@ -25,8 +23,7 @@ describe('Access Control', () => { let restricted: Restricted beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) beforeEach(async () => { @@ -43,7 +40,7 @@ describe('Access Control', () => { afterAll(async () => { if (typeof payload.db.destroy === 'function') { - await payload.db.destroy(payload) + await payload.db.destroy() } }) diff --git a/test/access-control/payload-types.ts b/test/access-control/payload-types.ts index aca75e670..f4f3b367d 100644 --- a/test/access-control/payload-types.ts +++ b/test/access-control/payload-types.ts @@ -159,7 +159,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/admin/payload-types.ts b/test/admin/payload-types.ts index 56013ecc0..900a35e23 100644 --- a/test/admin/payload-types.ts +++ b/test/admin/payload-types.ts @@ -192,7 +192,3 @@ export interface GroupGlobalsTwo { updatedAt?: string | null createdAt?: string | null } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/array-update/int.spec.ts b/test/array-update/int.spec.ts index 6019ecbe5..3c3a1dc67 100644 --- a/test/array-update/int.spec.ts +++ b/test/array-update/int.spec.ts @@ -1,7 +1,6 @@ import type { Payload } from '../../packages/payload/src/index.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' import { arraySlug } from './shared.js' @@ -9,13 +8,12 @@ let payload: Payload describe('array-update', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) afterAll(async () => { if (typeof payload.db.destroy === 'function') { - await payload.db.destroy(payload) + await payload.db.destroy() } }) diff --git a/test/auth/int.spec.ts b/test/auth/int.spec.ts index 7a0b6f98e..a59ef4441 100644 --- a/test/auth/int.spec.ts +++ b/test/auth/int.spec.ts @@ -2,11 +2,10 @@ import jwtDecode from 'jwt-decode' import type { User } from '../../packages/payload/src/auth/index.js' import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' -import { getPayload } from '../../packages/payload/src/index.js' import { devUser } from '../credentials.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' import { namedSaveToJWTValue, saveToJWTKey, slug } from './shared.js' @@ -17,9 +16,7 @@ const { email, password } = devUser describe('Auth', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/auth/payload-types.ts b/test/auth/payload-types.ts index 8a6c58177..19ce576c7 100644 --- a/test/auth/payload-types.ts +++ b/test/auth/payload-types.ts @@ -118,15 +118,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes { - collections: { - users: User - 'api-keys': ApiKey - 'public-users': PublicUser - 'payload-preferences': PayloadPreference - 'payload-migrations': PayloadMigration - } - } -} diff --git a/test/collections-graphql/int.spec.ts b/test/collections-graphql/int.spec.ts index 8279c0754..cf2fe2bb8 100644 --- a/test/collections-graphql/int.spec.ts +++ b/test/collections-graphql/int.spec.ts @@ -4,6 +4,7 @@ import type { Post } from './payload-types.js' import { getPayload } from '../../packages/payload/src/index.js' import { mapAsync } from '../../packages/payload/src/utilities/mapAsync.js' import { NextRESTClient } from '../helpers/NextRESTClient.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import { idToString } from '../helpers/idToString.js' import { startMemoryDB } from '../startMemoryDB.js' import configPromise, { errorOnHookSlug, pointSlug, relationSlug, slug } from './config.js' @@ -15,6 +16,8 @@ let payload: Payload describe('collections-graphql', () => { beforeAll(async () => { + ;({ payload, restClient } = await initPayloadInt(configPromise)) + const config = await startMemoryDB(configPromise) payload = await getPayload({ config }) restClient = new NextRESTClient(payload.config) diff --git a/test/config/int.spec.ts b/test/config/int.spec.ts index 9c68a05dc..9a1619172 100644 --- a/test/config/int.spec.ts +++ b/test/config/int.spec.ts @@ -1,16 +1,14 @@ import type { BlockField } from '../../packages/payload/src/fields/config/types.js' import type { Payload } from '../../packages/payload/src/index.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' let payload: Payload describe('Config', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/config/payload-types.ts b/test/config/payload-types.ts index 4e9ad79ea..152468abc 100644 --- a/test/config/payload-types.ts +++ b/test/config/payload-types.ts @@ -77,7 +77,3 @@ export interface MyGlobal { updatedAt?: string | null createdAt?: string | null } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/custom-graphql/int.spec.ts b/test/custom-graphql/int.spec.ts index 6536bf981..eb2df1543 100644 --- a/test/custom-graphql/int.spec.ts +++ b/test/custom-graphql/int.spec.ts @@ -1,8 +1,7 @@ import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' let restClient: NextRESTClient @@ -10,9 +9,7 @@ let payload: Payload describe('Custom GraphQL', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/custom-graphql/payload-types.ts b/test/custom-graphql/payload-types.ts index 4cb8bec5f..203c39bc8 100644 --- a/test/custom-graphql/payload-types.ts +++ b/test/custom-graphql/payload-types.ts @@ -53,7 +53,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/database/int.spec.ts b/test/database/int.spec.ts index 253b21fbe..1a4b7a9a3 100644 --- a/test/database/int.spec.ts +++ b/test/database/int.spec.ts @@ -8,12 +8,11 @@ import type { TypeWithID } from '../../packages/payload/src/collections/config/t import type { Payload } from '../../packages/payload/src/index.js' import type { PayloadRequest } from '../../packages/payload/src/types/index.js' -import { getPayload } from '../../packages/payload/src/index.js' import { commitTransaction } from '../../packages/payload/src/utilities/commitTransaction.js' import { initTransaction } from '../../packages/payload/src/utilities/initTransaction.js' import { devUser } from '../credentials.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import removeFiles from '../helpers/removeFiles.js' -import { startMemoryDB } from '../startMemoryDB.js' import configPromise from './config.js' const filename = fileURLToPath(import.meta.url) @@ -27,8 +26,7 @@ process.env.PAYLOAD_CONFIG_PATH = path.join(dirname, 'config.ts') describe('database', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) payload.db.migrationDir = path.join(dirname, './migrations') const loginResult = await payload.login({ diff --git a/test/database/payload-types.ts b/test/database/payload-types.ts index d166628f7..54eca4cd7 100644 --- a/test/database/payload-types.ts +++ b/test/database/payload-types.ts @@ -84,7 +84,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/dataloader/int.spec.ts b/test/dataloader/int.spec.ts index cd2da5a32..c3259b7d1 100644 --- a/test/dataloader/int.spec.ts +++ b/test/dataloader/int.spec.ts @@ -1,9 +1,8 @@ import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' -import { getPayload } from '../../packages/payload/src/index.js' import { devUser } from '../credentials.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise, { postDoc } from './config.js' let restClient: NextRESTClient @@ -12,9 +11,7 @@ let token: string describe('dataloader', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) const loginResult = await payload.login({ collection: 'users', diff --git a/test/endpoints/int.spec.ts b/test/endpoints/int.spec.ts index f40908a63..444ac9532 100644 --- a/test/endpoints/int.spec.ts +++ b/test/endpoints/int.spec.ts @@ -1,6 +1,7 @@ -import { type Payload, getPayload } from '../../packages/payload/src/index.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' + +import { type Payload } from '../../packages/payload/src/index.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' import { applicationEndpoint, @@ -17,9 +18,7 @@ let restClient: NextRESTClient describe('Endpoints', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/field-error-states/payload-types.ts b/test/field-error-states/payload-types.ts index ac77db362..8332a3442 100644 --- a/test/field-error-states/payload-types.ts +++ b/test/field-error-states/payload-types.ts @@ -219,7 +219,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/fields-relationship/payload-types.ts b/test/fields-relationship/payload-types.ts index 7fe51f10b..98eb0bda9 100644 --- a/test/fields-relationship/payload-types.ts +++ b/test/fields-relationship/payload-types.ts @@ -165,7 +165,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/fields/int.spec.ts b/test/fields/int.spec.ts index 091978bc2..df780d3a4 100644 --- a/test/fields/int.spec.ts +++ b/test/fields/int.spec.ts @@ -3,11 +3,11 @@ import type { IndexDirection, IndexOptions } from 'mongoose' import type { MongooseAdapter } from '../../packages/db-mongodb/src/index.js' import type { PaginatedDocs } from '../../packages/payload/src/database/types.js' import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' import type { GroupField, RichTextField } from './payload-types.js' import { getPayload } from '../../packages/payload/src/index.js' import { devUser } from '../credentials.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' import { isMongoose } from '../helpers/isMongoose.js' import { startMemoryDB } from '../startMemoryDB.js' import { arrayDefaultValue } from './collections/Array/index.js' @@ -39,12 +39,12 @@ import { let restClient: NextRESTClient let user: any let payload: Payload +import { initPayloadInt } from '../helpers/initPayloadInt.js' describe('Fields', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) + await restClient.login({ slug: 'users', credentials: devUser, diff --git a/test/fields/payload-types.ts b/test/fields/payload-types.ts index b08932e83..3db518685 100644 --- a/test/fields/payload-types.ts +++ b/test/fields/payload-types.ts @@ -1254,7 +1254,3 @@ export interface LexicalBlocksRadioButtonsBlock { blockName?: string | null blockType: 'radioButtons' } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/globals/int.spec.ts b/test/globals/int.spec.ts index 6a5162942..d0965a743 100644 --- a/test/globals/int.spec.ts +++ b/test/globals/int.spec.ts @@ -1,8 +1,7 @@ import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise, { accessControlSlug, arraySlug, @@ -17,9 +16,7 @@ let restClient: NextRESTClient describe('globals', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/helpers/configHelpers.ts b/test/helpers/configHelpers.ts index d242757a7..6460f3dd7 100644 --- a/test/helpers/configHelpers.ts +++ b/test/helpers/configHelpers.ts @@ -1,15 +1,16 @@ import { promises as _promises } from 'fs' import { createServer } from 'http' import nextImport from 'next' -import { startMemoryDB } from 'test/startMemoryDB.js' import { parse } from 'url' import type { SanitizedConfig } from '../../packages/payload/src/config/types.js' -import type { Payload } from '../../packages/payload/src/index.js' import { getPayloadHMR } from '../../packages/next/src/utilities/getPayloadHMR.js' +import { type Payload, getPayload } from '../../packages/payload/src/index.js' import wait from '../../packages/payload/src/utilities/wait.js' +import { startMemoryDB } from '../startMemoryDB.js' import { createTestHooks } from '../testHooks.js' +import { NextRESTClient } from './NextRESTClient.js' type Args = { config: Promise diff --git a/test/helpers/initPayloadInt.ts b/test/helpers/initPayloadInt.ts new file mode 100644 index 000000000..03bdde53b --- /dev/null +++ b/test/helpers/initPayloadInt.ts @@ -0,0 +1,18 @@ +import type { SanitizedConfig } from '../../packages/payload/src/config/types.js' + +import { type Payload, getPayload } from '../../packages/payload/src/index.js' +import { startMemoryDB } from '../startMemoryDB.js' +import { NextRESTClient } from './NextRESTClient.js' + +/** + * Initialize Payload configured for integration tests + */ +export async function initPayloadInt( + configPromise: Promise, +): Promise<{ config: SanitizedConfig; payload: Payload; restClient: NextRESTClient }> { + const config = await startMemoryDB(configPromise) + const payload = await getPayload({ config }) + const restClient = new NextRESTClient(payload.config) + + return { config, payload, restClient } +} diff --git a/test/hooks/int.spec.ts b/test/hooks/int.spec.ts index efc71cea9..908414a44 100644 --- a/test/hooks/int.spec.ts +++ b/test/hooks/int.spec.ts @@ -1,11 +1,10 @@ import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' import type { NestedAfterReadHook } from './payload-types.js' import { AuthenticationError } from '../../packages/payload/src/errors/index.js' -import { getPayload } from '../../packages/payload/src/index.js' import { devUser, regularUser } from '../credentials.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import { afterOperationSlug } from './collections/AfterOperation/index.js' import { chainingHooksSlug } from './collections/ChainingHooks/index.js' import { contextHooksSlug } from './collections/ContextHooks/index.js' @@ -26,9 +25,7 @@ let payload: Payload describe('Hooks', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/jest.setup.ts b/test/jest.setup.ts index 16fa08366..b1904cacd 100644 --- a/test/jest.setup.ts +++ b/test/jest.setup.ts @@ -8,12 +8,6 @@ beforeAll(async () => { process.env.PAYLOAD_DISABLE_ADMIN = 'true' process.env.PAYLOAD_DROP_DATABASE = 'true' -if (process.env.PAYLOAD_DATABASE) { - console.log('\n\nUsing database:', process.env.PAYLOAD_DATABASE) -} else { - console.log('\n\nNo database specified, using default') -} - process.env.PAYLOAD_PUBLIC_CLOUD_STORAGE_ADAPTER = 's3' afterAll(async () => { diff --git a/test/live-preview/int.spec.ts b/test/live-preview/int.spec.ts index a6acf9e02..21d4d1cae 100644 --- a/test/live-preview/int.spec.ts +++ b/test/live-preview/int.spec.ts @@ -2,16 +2,14 @@ import path from 'path' import { fileURLToPath } from 'url' import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' import type { Media, Page, Post, Tenant } from './payload-types.js' import { handleMessage } from '../../packages/live-preview/src/handleMessage.js' import { mergeData } from '../../packages/live-preview/src/mergeData.js' import { traverseRichText } from '../../packages/live-preview/src/traverseRichText.js' -import { getPayload } from '../../packages/payload/src/index.js' import getFileByPath from '../../packages/payload/src/uploads/getFileByPath.js' import { fieldSchemaToJSON } from '../../packages/payload/src/utilities/fieldSchemaToJSON.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' import { Pages } from './collections/Pages.js' import { postsSlug } from './collections/Posts.js' import configPromise from './config.js' @@ -25,6 +23,8 @@ const schemaJSON = fieldSchemaToJSON(Pages.fields) let payload: Payload let restClient: NextRESTClient +import { initPayloadInt } from '../helpers/initPayloadInt.js' + function collectionPopulationRequestHandler({ endpoint }: { endpoint: string }) { return restClient.GET(`/${endpoint}`) } @@ -37,9 +37,7 @@ describe('Collections - Live Preview', () => { let media: Media beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) tenant = await payload.create({ collection: tenantsSlug, diff --git a/test/live-preview/next-app/.eslintrc.json b/test/live-preview/next-app/.eslintrc.json deleted file mode 100644 index bffb357a7..000000000 --- a/test/live-preview/next-app/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "next/core-web-vitals" -} diff --git a/test/live-preview/next-app/payload-types.ts b/test/live-preview/next-app/payload-types.ts index e9f4006b3..928aaec5a 100644 --- a/test/live-preview/next-app/payload-types.ts +++ b/test/live-preview/next-app/payload-types.ts @@ -457,7 +457,3 @@ export interface Footer { updatedAt?: string | null createdAt?: string | null } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/live-preview/payload-types.ts b/test/live-preview/payload-types.ts index e9f4006b3..928aaec5a 100644 --- a/test/live-preview/payload-types.ts +++ b/test/live-preview/payload-types.ts @@ -457,7 +457,3 @@ export interface Footer { updatedAt?: string | null createdAt?: string | null } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/localization/int.spec.ts b/test/localization/int.spec.ts index ce42f4b19..bf55cc565 100644 --- a/test/localization/int.spec.ts +++ b/test/localization/int.spec.ts @@ -1,11 +1,12 @@ import type { Payload } from '../../packages/payload/src/index.js' import type { Where } from '../../packages/payload/src/types/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' import type { LocalizedPost, WithLocalizedRelationship } from './payload-types.js' import { getPayload } from '../../packages/payload/src/index.js' import { englishLocale } from '../globals/config.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' import { idToString } from '../helpers/idToString.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import { startMemoryDB } from '../startMemoryDB.js' import { arrayCollectionSlug } from './collections/Array/index.js' import { nestedToArrayAndBlockCollectionSlug } from './collections/NestedToArrayAndBlock/index.js' @@ -36,9 +37,7 @@ describe('Localization', () => { let postWithLocalizedData: LocalizedPost beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) // @ts-expect-error Force typing post1 = await payload.create({ @@ -912,8 +911,6 @@ describe('Localization', () => { }) // should return the value of the fallback locale - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error expect(updatedSpanishDoc.items[0].text).toStrictEqual(englishTitle) }) }) diff --git a/test/localization/payload-types.ts b/test/localization/payload-types.ts index 6abfdb95a..6a0b2546d 100644 --- a/test/localization/payload-types.ts +++ b/test/localization/payload-types.ts @@ -180,7 +180,3 @@ export interface GlobalArray { updatedAt?: string | null createdAt?: string | null } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/plugin-cloud-storage/int.spec.ts b/test/plugin-cloud-storage/int.spec.ts index d7084f9a9..14f2b1a10 100644 --- a/test/plugin-cloud-storage/int.spec.ts +++ b/test/plugin-cloud-storage/int.spec.ts @@ -1,13 +1,11 @@ -/* eslint-disable jest/require-top-level-describe */ import * as AWS from '@aws-sdk/client-s3' import path from 'path' import { fileURLToPath } from 'url' import type { Payload } from '../../packages/payload/src/index.js' -import { getPayload } from '../../packages/payload/src/index.js' import { describeIfInCIOrHasLocalstack } from '../helpers.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' const filename = fileURLToPath(import.meta.url) @@ -17,8 +15,7 @@ let payload: Payload describe('@payloadcms/plugin-cloud-storage', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/plugin-cloud/int.spec.ts b/test/plugin-cloud/int.spec.ts index e55a30ee5..a750d45cf 100644 --- a/test/plugin-cloud/int.spec.ts +++ b/test/plugin-cloud/int.spec.ts @@ -1,15 +1,13 @@ import type { Payload } from '../../packages/payload/src/index.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' let payload: Payload describe('@payloadcms/plugin-cloud', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/plugin-form-builder/int.spec.ts b/test/plugin-form-builder/int.spec.ts index 3261a642a..a55f303c9 100644 --- a/test/plugin-form-builder/int.spec.ts +++ b/test/plugin-form-builder/int.spec.ts @@ -2,10 +2,9 @@ import type { Payload } from '../../packages/payload/src/index.js' import type { Form } from './payload-types.js' import { ValidationError } from '../../packages/payload/src/errors/index.js' -import { getPayload } from '../../packages/payload/src/index.js' import { serializeLexical } from '../../packages/plugin-form-builder/src/utilities/lexical/serializeLexical.js' import { serializeSlate } from '../../packages/plugin-form-builder/src/utilities/slate/serializeSlate.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' import { formSubmissionsSlug, formsSlug } from './shared.js' @@ -14,8 +13,7 @@ let form: Form describe('@payloadcms/plugin-form-builder', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) const formConfig: Omit = { confirmationMessage: [ diff --git a/test/plugin-form-builder/payload-types.ts b/test/plugin-form-builder/payload-types.ts index 7846b556f..1a6ac44ab 100644 --- a/test/plugin-form-builder/payload-types.ts +++ b/test/plugin-form-builder/payload-types.ts @@ -251,7 +251,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/plugin-nested-docs/int.spec.ts b/test/plugin-nested-docs/int.spec.ts index 12cfe6e22..94e4184d2 100644 --- a/test/plugin-nested-docs/int.spec.ts +++ b/test/plugin-nested-docs/int.spec.ts @@ -5,6 +5,7 @@ import type { import type { Payload } from '../../packages/payload/src/index.js' import { getPayload } from '../../packages/payload/src/index.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import { startMemoryDB } from '../startMemoryDB.js' import configPromise from './config.js' @@ -12,8 +13,7 @@ let payload: Payload describe('@payloadcms/plugin-nested-docs', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/plugin-nested-docs/payload-types.ts b/test/plugin-nested-docs/payload-types.ts index 20f313859..45e4a32d9 100644 --- a/test/plugin-nested-docs/payload-types.ts +++ b/test/plugin-nested-docs/payload-types.ts @@ -72,7 +72,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/plugin-redirects/int.spec.ts b/test/plugin-redirects/int.spec.ts index 2d51ac363..4f294daee 100644 --- a/test/plugin-redirects/int.spec.ts +++ b/test/plugin-redirects/int.spec.ts @@ -1,8 +1,7 @@ import type { Payload } from '../../packages/payload/src/index.js' import type { Page } from './payload-types.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' import { pagesSlug } from './shared.js' @@ -11,8 +10,7 @@ let page: Page describe('@payloadcms/plugin-redirects', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) page = await payload.create({ collection: 'pages', diff --git a/test/plugin-redirects/payload-types.ts b/test/plugin-redirects/payload-types.ts index 9c4350ab2..b81b330ce 100644 --- a/test/plugin-redirects/payload-types.ts +++ b/test/plugin-redirects/payload-types.ts @@ -77,7 +77,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/plugin-search/int.spec.ts b/test/plugin-search/int.spec.ts index ae1f65954..3e35441c7 100644 --- a/test/plugin-search/int.spec.ts +++ b/test/plugin-search/int.spec.ts @@ -1,16 +1,14 @@ import type { Payload } from '../../packages/payload/src/index.js' -import { getPayload } from '../../packages/payload/src/index.js' import wait from '../../packages/payload/src/utilities/wait.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' let payload: Payload describe('@payloadcms/plugin-search', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/plugin-sentry/int.spec.ts b/test/plugin-sentry/int.spec.ts index a251d157e..40fc016ab 100644 --- a/test/plugin-sentry/int.spec.ts +++ b/test/plugin-sentry/int.spec.ts @@ -1,15 +1,13 @@ import type { Payload } from '../../packages/payload/src/index.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' let payload: Payload describe('@payloadcms/plugin-sentry', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/plugin-sentry/payload-types.ts b/test/plugin-sentry/payload-types.ts index 1ad4070ea..871f679df 100644 --- a/test/plugin-sentry/payload-types.ts +++ b/test/plugin-sentry/payload-types.ts @@ -60,7 +60,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes extends Config {} -} diff --git a/test/plugin-seo/int.spec.ts b/test/plugin-seo/int.spec.ts index 6cbcc55de..6a4ce548a 100644 --- a/test/plugin-seo/int.spec.ts +++ b/test/plugin-seo/int.spec.ts @@ -3,10 +3,9 @@ import { fileURLToPath } from 'url' import type { Payload } from '../../packages/payload/src/index.js' -import { getPayload } from '../../packages/payload/src/index.js' import getFileByPath from '../../packages/payload/src/uploads/getFileByPath.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import removeFiles from '../helpers/removeFiles.js' -import { startMemoryDB } from '../startMemoryDB.js' import configPromise from './config.js' import { mediaSlug } from './shared.js' @@ -22,9 +21,7 @@ describe('@payloadcms/plugin-seo', () => { beforeAll(async () => { const uploadsDir = path.resolve(dirname, './media') removeFiles(path.normalize(uploadsDir)) - - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) // Create image const filePath = path.resolve(dirname, './image-1.jpg') diff --git a/test/plugin-seo/payload-types.ts b/test/plugin-seo/payload-types.ts index 0f2c9681c..2aa451c11 100644 --- a/test/plugin-seo/payload-types.ts +++ b/test/plugin-seo/payload-types.ts @@ -85,15 +85,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes { - collections: { - users: User - pages: Page - media: Media - 'payload-preferences': PayloadPreference - 'payload-migrations': PayloadMigration - } - } -} diff --git a/test/plugin-stripe/int.spec.ts b/test/plugin-stripe/int.spec.ts index b5051b962..4b733738f 100644 --- a/test/plugin-stripe/int.spec.ts +++ b/test/plugin-stripe/int.spec.ts @@ -1,15 +1,13 @@ import type { Payload } from '../../packages/payload/src/index.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' let payload: Payload describe('Stripe Plugin', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/plugins/int.spec.ts b/test/plugins/int.spec.ts index 032c17006..7f0deddcc 100644 --- a/test/plugins/int.spec.ts +++ b/test/plugins/int.spec.ts @@ -1,15 +1,13 @@ import type { Payload } from '../../packages/payload/src/index.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise, { pagesSlug } from './config.js' let payload: Payload describe('Collections - Plugins', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) + ;({ payload } = await initPayloadInt(configPromise)) }) afterAll(async () => { diff --git a/test/relationships/int.spec.ts b/test/relationships/int.spec.ts index 24271989e..c1a84d02c 100644 --- a/test/relationships/int.spec.ts +++ b/test/relationships/int.spec.ts @@ -1,6 +1,7 @@ import { randomBytes } from 'crypto' import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' import type { ChainedRelation, CustomIdNumberRelation, @@ -10,9 +11,7 @@ import type { Relation, } from './payload-types.js' -import { getPayload } from '../../packages/payload/src/index.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import configPromise from './config.js' import { chainedRelSlug, @@ -33,9 +32,8 @@ type EasierChained = { id: string; relation: EasierChained } describe('Relationships', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) + await restClient.login({ slug: usersSlug }) }) diff --git a/test/testHooks.ts b/test/testHooks.ts index 84d451f99..67d524a1f 100644 --- a/test/testHooks.ts +++ b/test/testHooks.ts @@ -13,8 +13,6 @@ type TestHooks = { } export const createTestHooks = async (testSuiteName = '_community'): Promise => { - console.log('\nUsing config:', testSuiteName, '\n') - const tsConfigPath = path.resolve(dirname, '..', 'tsconfig.json') const tsConfig = await json5.parse(await readFile(tsConfigPath, 'utf8')) const originalPayloadConfigTsValue = diff --git a/test/uploads/int.spec.ts b/test/uploads/int.spec.ts index 805575117..7caeed06c 100644 --- a/test/uploads/int.spec.ts +++ b/test/uploads/int.spec.ts @@ -6,11 +6,12 @@ import { fileURLToPath } from 'url' import { promisify } from 'util' import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' import type { Enlarge, Media } from './payload-types.js' import { getPayload } from '../../packages/payload/src/index.js' import getFileByPath from '../../packages/payload/src/uploads/getFileByPath.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import { startMemoryDB } from '../startMemoryDB.js' import configPromise from './config.js' import { @@ -79,9 +80,8 @@ let payload: Payload describe('Collections - Uploads', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) + await restClient.login({ slug: usersSlug }) }) diff --git a/test/uploads/payload-types.ts b/test/uploads/payload-types.ts index 4a23b421b..0d0cc8f61 100644 --- a/test/uploads/payload-types.ts +++ b/test/uploads/payload-types.ts @@ -546,30 +546,3 @@ export interface PayloadMigration { updatedAt: string createdAt: string } - -declare module 'payload' { - export interface GeneratedTypes { - collections: { - relation: Relation - audio: Audio - 'gif-resize': GifResize - 'no-image-sizes': NoImageSize - 'crop-only': CropOnly - 'focal-only': FocalOnly - media: Media - enlarge: Enlarge - reduce: Reduce - 'media-trim': MediaTrim - 'unstored-media': UnstoredMedia - 'externally-served-media': ExternallyServedMedia - 'uploads-1': Uploads1 - 'uploads-2': Uploads2 - 'admin-thumbnail': AdminThumbnail - 'optional-file': OptionalFile - 'required-file': RequiredFile - users: User - 'payload-preferences': PayloadPreference - 'payload-migrations': PayloadMigration - } - } -} diff --git a/test/versions/int.spec.ts b/test/versions/int.spec.ts index 4198df76d..9af1ffd03 100644 --- a/test/versions/int.spec.ts +++ b/test/versions/int.spec.ts @@ -1,9 +1,8 @@ import type { Payload } from '../../packages/payload/src/index.js' +import type { NextRESTClient } from '../helpers/NextRESTClient.js' -import { getPayload } from '../../packages/payload/src/index.js' import { devUser } from '../credentials.js' -import { NextRESTClient } from '../helpers/NextRESTClient.js' -import { startMemoryDB } from '../startMemoryDB.js' +import { initPayloadInt } from '../helpers/initPayloadInt.js' import AutosavePosts from './collections/Autosave.js' import configPromise from './config.js' import AutosaveGlobal from './globals/Autosave.js' @@ -35,9 +34,7 @@ const formatGraphQLID = (id: number | string) => describe('Versions', () => { beforeAll(async () => { - const config = await startMemoryDB(configPromise) - payload = await getPayload({ config }) - restClient = new NextRESTClient(payload.config) + ;({ payload, restClient } = await initPayloadInt(configPromise)) const login = ` mutation {