Files
payloadcms/test/buildConfigWithDefaults.ts
Elliot DeNolf dd0514bd2c ci: multiple jobs (#3337)
* ci: move playwright install to test:e2e script

* test: adjust test db names to avoid conflicts

* ci: clean up core job

* ci: add db-mongodb build job

* chore: add jest setup db adapter logging

* chore: install on mongodb job

* chore: adjust root deps

* chore: use turbo for db-mongodb to ensure build order

* chore: use turbo from .bin

* chore: add build script for db-postgres

* ci: add db-postgres build job

* chore: upgrade actions/checkout and actions/setup-node

* chore: rename github workflow file to main
2023-09-15 16:17:41 -04:00

78 lines
2.4 KiB
TypeScript

import path from 'path'
import type { Config, SanitizedConfig } from '../packages/payload/src/config/types'
import { mongooseAdapter } from '../packages/db-mongodb/src/index'
import { postgresAdapter } from '../packages/db-postgres/src/index'
import { buildConfig as buildPayloadConfig } from '../packages/payload/src/config/build'
const databaseAdapters = {
mongoose: mongooseAdapter({
url: 'mongodb://127.0.0.1/payloadtests',
}),
postgres: postgresAdapter({
client: {
connectionString: process.env.POSTGRES_URL || 'postgres://127.0.0.1:5432/payloadtests',
},
}),
}
export function buildConfigWithDefaults(testConfig?: Partial<Config>): Promise<SanitizedConfig> {
const [name] = process.argv.slice(2)
const config: Config = {
telemetry: false,
rateLimit: {
window: 15 * 60 * 100, // 15min default,
max: 9999999999,
},
...testConfig,
db: databaseAdapters[process.env.PAYLOAD_DATABASE || 'mongoose'],
}
config.admin = {
autoLogin:
process.env.PAYLOAD_PUBLIC_DISABLE_AUTO_LOGIN === 'true'
? false
: {
email: 'dev@payloadcms.com',
password: 'test',
},
...(config.admin || {}),
webpack: (webpackConfig) => {
const existingConfig =
typeof testConfig?.admin?.webpack === 'function'
? testConfig.admin.webpack(webpackConfig)
: webpackConfig
return {
...existingConfig,
name,
cache: process.env.NODE_ENV === 'test' ? { type: 'memory' } : existingConfig.cache,
resolve: {
...existingConfig.resolve,
alias: {
...existingConfig.resolve?.alias,
[path.resolve(__dirname, '../packages/db-postgres/src/index')]: path.resolve(
__dirname,
'../packages/db-postgres/src/mock',
),
[path.resolve(__dirname, '../packages/db-mongodb/src/index')]: path.resolve(
__dirname,
'../packages/db-mongodb/src/mock',
),
'@payloadcms/db-mongodb': path.resolve(__dirname, '../packages/db-mongodb/src/mock'),
'@payloadcms/db-postgres': path.resolve(__dirname, '../packages/db-postgres/src/mock'),
},
},
}
},
}
if (process.env.PAYLOAD_DISABLE_ADMIN === 'true') {
if (typeof config.admin !== 'object') config.admin = {}
config.admin.disable = true
}
return buildPayloadConfig(config)
}