From 34fe6182c895bb8ede1444b8d4d242d621a35694 Mon Sep 17 00:00:00 2001 From: Alessio Gravili Date: Mon, 1 Apr 2024 23:05:54 -0400 Subject: [PATCH] temp3 --- test/buildConfigWithDefaults.ts | 49 ++---------------------------- test/getDBAdapter.ts | 54 +++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 46 deletions(-) create mode 100644 test/getDBAdapter.ts diff --git a/test/buildConfigWithDefaults.ts b/test/buildConfigWithDefaults.ts index 2e1398b8d..df86abb19 100644 --- a/test/buildConfigWithDefaults.ts +++ b/test/buildConfigWithDefaults.ts @@ -25,11 +25,11 @@ import { UploadFeature, lexicalEditor, } from '@payloadcms/richtext-lexical' -import { MongoMemoryReplSet } from 'mongodb-memory-server' // import { slateEditor } from '@payloadcms/richtext-slate' import { type Config, buildConfig } from 'payload/config' import sharp from 'sharp' +import { getDBAdapter } from './getDBAdapter.js' import { reInitEndpoint } from './helpers/reInit.js' import { localAPIEndpoint } from './helpers/sdk/endpoint.js' // process.env.PAYLOAD_DATABASE = 'postgres' @@ -62,57 +62,14 @@ const databaseAdapters = { }, }), } -let cached = global._cachedDBAdapter - -if (!cached) { - // eslint-disable-next-line no-multi-assign - cached = global._cachedDBAdapter = { - promise: null, - adapter: null, - } -} export async function buildConfigWithDefaults( testConfig?: Partial, ): Promise { - if (!process.env.PAYLOAD_DATABASE || process.env.PAYLOAD_DATABASE === 'mongodb') { - if (process.env.JEST_WORKER_ID || process.env.PW_TS_ESM_LOADER_ON) { - console.log('Good: Using in-memory MongoDB for tests') - if (cached.adapter) { - console.log('MDB: Cached') - databaseAdapters.mongodb = cached.adapter - } else { - if (!cached.promise) { - console.log('MDB: Creating') - cached.promise = MongoMemoryReplSet.create({ - replSet: { - count: 3, - dbName: 'payloadmemory', - }, - }).then((server) => { - const url = server.getUri() - return mongooseAdapter({ - mongoMemoryServer: server, - url, - }) - }) - } - console.log('MDB: Awaiting') - - cached.adapter = await cached.promise - cached.promise = null - - databaseAdapters.mongodb = cached.adapter - } - } else { - console.log('Bad1!!') - } - } else { - console.log('Bad2!!') - } + const adapter = await getDBAdapter() const config: Config = { - db: databaseAdapters[process.env.PAYLOAD_DATABASE || 'mongodb'], + db: adapter || databaseAdapters[process.env.PAYLOAD_DATABASE || 'mongodb'], secret: 'TEST_SECRET', //editor: slateEditor({}), // editor: slateEditor({ diff --git a/test/getDBAdapter.ts b/test/getDBAdapter.ts new file mode 100644 index 000000000..c5517a161 --- /dev/null +++ b/test/getDBAdapter.ts @@ -0,0 +1,54 @@ +import type { DatabaseAdapterObj } from 'payload/database' + +import { mongooseAdapter } from '@payloadcms/db-mongodb' +import { MongoMemoryReplSet } from 'mongodb-memory-server' + +let cached: { + adapter: DatabaseAdapterObj | null + promise: Promise | null +} = global._cachedDBAdapter + +if (!cached) { + // eslint-disable-next-line no-multi-assign + cached = global._cachedDBAdapter = { + promise: null, + adapter: null, + } +} + +export const getDBAdapter = async (): Promise => { + if (!process.env.PAYLOAD_DATABASE || process.env.PAYLOAD_DATABASE === 'mongodb') { + if (process.env.JEST_WORKER_ID || process.env.PW_TS_ESM_LOADER_ON) { + console.log('Good: Using in-memory MongoDB for tests') + if (cached.adapter) { + console.log('MDB: Cached') + return cached.adapter + } + if (!cached.promise) { + console.log('MDB: Creating') + cached.promise = MongoMemoryReplSet.create({ + replSet: { + count: 3, + dbName: 'payloadmemory', + }, + }).then((server) => { + const url = server.getUri() + return mongooseAdapter({ + mongoMemoryServer: server, + url, + }) + }) + } + console.log('MDB: Awaiting') + + cached.adapter = await cached.promise + + return cached.adapter + } else { + console.log('Bad1!!') + } + } else { + console.log('Bad2!!') + } + return cached.adapter +}