chore: resolves some of the testing suite issues

This commit is contained in:
James
2023-09-15 16:29:16 -04:00
parent 1fa636417f
commit 2a9946f788
12 changed files with 154 additions and 51 deletions

View File

@@ -28,6 +28,7 @@
"test:e2e": "ts-node -T ./test/runE2E.ts", "test:e2e": "ts-node -T ./test/runE2E.ts",
"test:e2e:debug": "cross-env PWDEBUG=1 DISABLE_LOGGING=true playwright test", "test:e2e:debug": "cross-env PWDEBUG=1 DISABLE_LOGGING=true playwright test",
"test:e2e:headed": "cross-env DISABLE_LOGGING=true playwright test --headed", "test:e2e:headed": "cross-env DISABLE_LOGGING=true playwright test --headed",
"test:int:postgres": "cross-env PAYLOAD_DATABASE=postgres DISABLE_LOGGING=true jest --forceExit --detectOpenHandles",
"test:int": "cross-env DISABLE_LOGGING=true jest --forceExit --detectOpenHandles", "test:int": "cross-env DISABLE_LOGGING=true jest --forceExit --detectOpenHandles",
"translateNewKeys": "pnpm --filter payload run translateNewKeys" "translateNewKeys": "pnpm --filter payload run translateNewKeys"
}, },
@@ -49,9 +50,16 @@
"cross-env": "7.0.3", "cross-env": "7.0.3",
"express": "4.18.2", "express": "4.18.2",
"get-port": "5.1.1", "get-port": "5.1.1",
"graphql-request": "3.7.0",
"isomorphic-fetch": "3.0.0",
"jest": "29.6.4", "jest": "29.6.4",
"jest-environment-jsdom": "29.6.4", "jest-environment-jsdom": "29.6.4",
"jwt-decode": "3.1.2",
"mongodb-memory-server": "8.13.0",
"node-fetch": "2.6.12",
"prettier": "^3.0.3", "prettier": "^3.0.3",
"qs": "6.11.2",
"react": "18.2.0",
"shelljs": "0.8.5", "shelljs": "0.8.5",
"ts-node": "10.9.1", "ts-node": "10.9.1",
"typescript": "5.2.2", "typescript": "5.2.2",

View File

@@ -213,7 +213,6 @@
"get-port": "5.1.1", "get-port": "5.1.1",
"glob": "8.1.0", "glob": "8.1.0",
"graphql-request": "3.7.0", "graphql-request": "3.7.0",
"mongodb-memory-server": "8.13.0",
"node-fetch": "2.6.12", "node-fetch": "2.6.12",
"nodemon": "3.0.1", "nodemon": "3.0.1",
"object.assign": "4.1.4", "object.assign": "4.1.4",

View File

@@ -45,23 +45,23 @@ const sanitizeCollection = (
}) })
if (!hasUpdatedAt) { if (!hasUpdatedAt) {
sanitized.fields.push({ sanitized.fields.push({
name: 'updatedAt',
admin: { admin: {
disableBulkEdit: true, disableBulkEdit: true,
hidden: true, hidden: true,
}, },
label: translations['general:updatedAt'], label: translations['general:updatedAt'],
name: 'updatedAt',
type: 'date', type: 'date',
}) })
} }
if (!hasCreatedAt) { if (!hasCreatedAt) {
sanitized.fields.push({ sanitized.fields.push({
name: 'createdAt',
admin: { admin: {
disableBulkEdit: true, disableBulkEdit: true,
hidden: true, hidden: true,
}, },
label: translations['general:createdAt'], label: translations['general:createdAt'],
name: 'createdAt',
type: 'date', type: 'date',
}) })
} }
@@ -143,7 +143,11 @@ const sanitizeCollection = (
// ///////////////////////////////// // /////////////////////////////////
const validRelationships = config.collections.map((c) => c.slug) const validRelationships = config.collections.map((c) => c.slug)
sanitized.fields = sanitizeFields(sanitized.fields, validRelationships) sanitized.fields = sanitizeFields({
config,
fields: sanitized.fields,
validRelationships,
})
return sanitized as SanitizedCollectionConfig return sanitized as SanitizedCollectionConfig
} }

View File

@@ -6,7 +6,6 @@ import type {
LocalizationConfigWithLabels, LocalizationConfigWithLabels,
LocalizationConfigWithNoLabels, LocalizationConfigWithNoLabels,
SanitizedConfig, SanitizedConfig,
SanitizedLocalizationConfig,
} from './types' } from './types'
import { defaultUserCollection } from '../auth/defaultUser' import { defaultUserCollection } from '../auth/defaultUser'
@@ -96,7 +95,7 @@ export const sanitizeConfig = (incomingConfig: Config): SanitizedConfig => {
checkDuplicateCollections(config.collections) checkDuplicateCollections(config.collections)
if (config.globals.length > 0) { if (config.globals.length > 0) {
config.globals = sanitizeGlobals(config.collections, config.globals) config.globals = sanitizeGlobals(config as SanitizedConfig)
} }
if (typeof config.serverURL === 'undefined') { if (typeof config.serverURL === 'undefined') {

View File

@@ -7,9 +7,15 @@ import type {
NumberField, NumberField,
TextField, TextField,
} from './types' } from './types'
import { Config } from '../../config/types'
import { InvalidFieldName, InvalidFieldRelationship, MissingFieldType } from '../../errors' import { InvalidFieldName, InvalidFieldRelationship, MissingFieldType } from '../../errors'
import sanitizeFields from './sanitize' import sanitizeFields from './sanitize'
import { DatabaseAdapter } from '../..'
const dummyConfig: Config = {
collections: [],
db: () => ({}) as DatabaseAdapter,
}
describe('sanitizeFields', () => { describe('sanitizeFields', () => {
it('should throw on missing type field', () => { it('should throw on missing type field', () => {
@@ -24,7 +30,11 @@ describe('sanitizeFields', () => {
expect(() => { expect(() => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
sanitizeFields(fields, []) sanitizeFields({
config: dummyConfig,
fields,
validRelationships: [],
})
}).toThrow(MissingFieldType) }).toThrow(MissingFieldType)
}) })
it('should throw on invalid field name', () => { it('should throw on invalid field name', () => {
@@ -36,7 +46,11 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields(fields, []) sanitizeFields({
config: dummyConfig,
fields,
validRelationships: [],
})
}).toThrow(InvalidFieldName) }).toThrow(InvalidFieldName)
}) })
@@ -48,7 +62,11 @@ describe('sanitizeFields', () => {
type: 'text', type: 'text',
}, },
] ]
const sanitizedField = sanitizeFields(fields, [])[0] as TextField const sanitizedField = sanitizeFields({
config: dummyConfig,
fields,
validRelationships: [],
})[0] as TextField
expect(sanitizedField.name).toStrictEqual('someField') expect(sanitizedField.name).toStrictEqual('someField')
expect(sanitizedField.label).toStrictEqual('Some Field') expect(sanitizedField.label).toStrictEqual('Some Field')
expect(sanitizedField.type).toStrictEqual('text') expect(sanitizedField.type).toStrictEqual('text')
@@ -61,7 +79,11 @@ describe('sanitizeFields', () => {
type: 'text', type: 'text',
}, },
] ]
const sanitizedField = sanitizeFields(fields, [])[0] as TextField const sanitizedField = sanitizeFields({
config: dummyConfig,
fields,
validRelationships: [],
})[0] as TextField
expect(sanitizedField.name).toStrictEqual('someField') expect(sanitizedField.name).toStrictEqual('someField')
expect(sanitizedField.label).toStrictEqual('Do not label') expect(sanitizedField.label).toStrictEqual('Do not label')
expect(sanitizedField.type).toStrictEqual('text') expect(sanitizedField.type).toStrictEqual('text')
@@ -76,7 +98,11 @@ describe('sanitizeFields', () => {
type: 'text', type: 'text',
}, },
] ]
const sanitizedField = sanitizeFields(fields, [])[0] as TextField const sanitizedField = sanitizeFields({
config: dummyConfig,
fields,
validRelationships: [],
})[0] as TextField
expect(sanitizedField.name).toStrictEqual('someField') expect(sanitizedField.name).toStrictEqual('someField')
expect(sanitizedField.label).toStrictEqual(false) expect(sanitizedField.label).toStrictEqual(false)
expect(sanitizedField.type).toStrictEqual('text') expect(sanitizedField.type).toStrictEqual('text')
@@ -94,7 +120,11 @@ describe('sanitizeFields', () => {
name: 'items', name: 'items',
type: 'array', type: 'array',
} }
const sanitizedField = sanitizeFields([arrayField], [])[0] as ArrayField const sanitizedField = sanitizeFields({
config: dummyConfig,
fields: [arrayField],
validRelationships: [],
})[0] as ArrayField
expect(sanitizedField.name).toStrictEqual('items') expect(sanitizedField.name).toStrictEqual('items')
expect(sanitizedField.label).toStrictEqual(false) expect(sanitizedField.label).toStrictEqual(false)
expect(sanitizedField.type).toStrictEqual('array') expect(sanitizedField.type).toStrictEqual('array')
@@ -119,7 +149,11 @@ describe('sanitizeFields', () => {
type: 'blocks', type: 'blocks',
}, },
] ]
const sanitizedField = sanitizeFields(fields, [])[0] as BlockField const sanitizedField = sanitizeFields({
config: dummyConfig,
fields,
validRelationships: [],
})[0] as BlockField
expect(sanitizedField.name).toStrictEqual('noLabelBlock') expect(sanitizedField.name).toStrictEqual('noLabelBlock')
expect(sanitizedField.label).toStrictEqual(false) expect(sanitizedField.label).toStrictEqual(false)
expect(sanitizedField.type).toStrictEqual('blocks') expect(sanitizedField.type).toStrictEqual('blocks')
@@ -140,7 +174,11 @@ describe('sanitizeFields', () => {
type: 'array', type: 'array',
}, },
] ]
const sanitizedField = sanitizeFields(fields, [])[0] as ArrayField const sanitizedField = sanitizeFields({
config: dummyConfig,
fields,
validRelationships: [],
})[0] as ArrayField
expect(sanitizedField.name).toStrictEqual('items') expect(sanitizedField.name).toStrictEqual('items')
expect(sanitizedField.label).toStrictEqual('Items') expect(sanitizedField.label).toStrictEqual('Items')
expect(sanitizedField.type).toStrictEqual('array') expect(sanitizedField.type).toStrictEqual('array')
@@ -160,7 +198,11 @@ describe('sanitizeFields', () => {
type: 'blocks', type: 'blocks',
}, },
] ]
const sanitizedField = sanitizeFields(fields, [])[0] as BlockField const sanitizedField = sanitizeFields({
config: dummyConfig,
fields,
validRelationships: [],
})[0] as BlockField
expect(sanitizedField.name).toStrictEqual('specialBlock') expect(sanitizedField.name).toStrictEqual('specialBlock')
expect(sanitizedField.label).toStrictEqual('Special Block') expect(sanitizedField.label).toStrictEqual('Special Block')
expect(sanitizedField.type).toStrictEqual('blocks') expect(sanitizedField.type).toStrictEqual('blocks')
@@ -184,7 +226,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields(fields, validRelationships) sanitizeFields({ config: dummyConfig, fields, validRelationships })
}).not.toThrow() }).not.toThrow()
}) })
@@ -199,7 +241,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields(fields, validRelationships) sanitizeFields({ config: dummyConfig, fields, validRelationships })
}).not.toThrow() }).not.toThrow()
}) })
@@ -225,7 +267,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields(fields, validRelationships) sanitizeFields({ config: dummyConfig, fields, validRelationships })
}).not.toThrow() }).not.toThrow()
}) })
@@ -240,7 +282,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields(fields, validRelationships) sanitizeFields({ config: dummyConfig, fields, validRelationships })
}).toThrow(InvalidFieldRelationship) }).toThrow(InvalidFieldRelationship)
}) })
@@ -255,7 +297,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields(fields, validRelationships) sanitizeFields({ config: dummyConfig, fields, validRelationships })
}).toThrow(InvalidFieldRelationship) }).toThrow(InvalidFieldRelationship)
}) })
@@ -281,7 +323,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields(fields, validRelationships) sanitizeFields({ config: dummyConfig, fields, validRelationships })
}).toThrow(InvalidFieldRelationship) }).toThrow(InvalidFieldRelationship)
}) })
@@ -294,12 +336,20 @@ describe('sanitizeFields', () => {
}, },
] ]
const sanitizedField = sanitizeFields(fields, [])[0] as CheckboxField const sanitizedField = sanitizeFields({
config: dummyConfig,
fields,
validRelationships: [],
})[0] as CheckboxField
expect(sanitizedField.defaultValue).toStrictEqual(false) expect(sanitizedField.defaultValue).toStrictEqual(false)
}) })
it('should return empty field array if no fields', () => { it('should return empty field array if no fields', () => {
const sanitizedFields = sanitizeFields([], []) const sanitizedFields = sanitizeFields({
config: dummyConfig,
fields: [],
validRelationships: [],
})
expect(sanitizedFields).toStrictEqual([]) expect(sanitizedFields).toStrictEqual([])
}) })
}) })

View File

@@ -1,3 +1,4 @@
import type { Config } from '../../config/types'
import type { Field } from './types' import type { Field } from './types'
import withCondition from '../../admin/components/forms/withCondition' import withCondition from '../../admin/components/forms/withCondition'
@@ -8,7 +9,13 @@ import { baseIDField } from '../baseFields/baseIDField'
import validations from '../validations' import validations from '../validations'
import { fieldAffectsData, tabHasName } from './types' import { fieldAffectsData, tabHasName } from './types'
const sanitizeFields = (fields: Field[], validRelationships: string[]): Field[] => { type Args = {
config: Config
fields: Field[]
validRelationships: string[]
}
const sanitizeFields = ({ config, fields, validRelationships }: Args): Field[] => {
if (!fields) return [] if (!fields) return []
return fields.map((unsanitizedField) => { return fields.map((unsanitizedField) => {
@@ -80,6 +87,8 @@ const sanitizeFields = (fields: Field[], validRelationships: string[]): Field[]
} }
if (fieldAffectsData(field)) { if (fieldAffectsData(field)) {
if (field.localized && !config.localization) delete field.localized
if (typeof field.validate === 'undefined') { if (typeof field.validate === 'undefined') {
const defaultValidate = validations[field.type] const defaultValidate = validations[field.type]
if (defaultValidate) { if (defaultValidate) {
@@ -101,8 +110,13 @@ const sanitizeFields = (fields: Field[], validRelationships: string[]): Field[]
field.admin = {} field.admin = {}
} }
if ('fields' in field && field.fields) if ('fields' in field && field.fields) {
field.fields = sanitizeFields(field.fields, validRelationships) field.fields = sanitizeFields({
config,
fields: field.fields,
validRelationships,
})
}
if (field.type === 'tabs') { if (field.type === 'tabs') {
field.tabs = field.tabs.map((tab) => { field.tabs = field.tabs.map((tab) => {
@@ -110,7 +124,13 @@ const sanitizeFields = (fields: Field[], validRelationships: string[]): Field[]
if (tabHasName(tab) && typeof tab.label === 'undefined') { if (tabHasName(tab) && typeof tab.label === 'undefined') {
unsanitizedTab.label = toWords(tab.name) unsanitizedTab.label = toWords(tab.name)
} }
unsanitizedTab.fields = sanitizeFields(tab.fields, validRelationships)
unsanitizedTab.fields = sanitizeFields({
config,
fields: tab.fields,
validRelationships,
})
return unsanitizedTab return unsanitizedTab
}) })
} }
@@ -121,7 +141,13 @@ const sanitizeFields = (fields: Field[], validRelationships: string[]): Field[]
unsanitizedBlock.labels = !unsanitizedBlock.labels unsanitizedBlock.labels = !unsanitizedBlock.labels
? formatLabels(unsanitizedBlock.slug) ? formatLabels(unsanitizedBlock.slug)
: unsanitizedBlock.labels : unsanitizedBlock.labels
unsanitizedBlock.fields = sanitizeFields(block.fields, validRelationships)
unsanitizedBlock.fields = sanitizeFields({
config,
fields: block.fields,
validRelationships,
})
return unsanitizedBlock return unsanitizedBlock
}) })
} }

View File

@@ -1,5 +1,5 @@
import type { CollectionConfig } from '../../collections/config/types' import type { Config } from '../../config/types'
import type { GlobalConfig, SanitizedGlobalConfig } from './types' import type { SanitizedGlobalConfig } from './types'
import defaultAccess from '../../auth/defaultAccess' import defaultAccess from '../../auth/defaultAccess'
import sanitizeFields from '../../fields/config/sanitize' import sanitizeFields from '../../fields/config/sanitize'
@@ -9,10 +9,9 @@ import translations from '../../translations'
import { toWords } from '../../utilities/formatLabels' import { toWords } from '../../utilities/formatLabels'
import baseVersionFields from '../../versions/baseFields' import baseVersionFields from '../../versions/baseFields'
const sanitizeGlobals = ( const sanitizeGlobals = (config: Config): SanitizedGlobalConfig[] => {
collections: CollectionConfig[], const { collections, globals } = config
globals: GlobalConfig[],
): SanitizedGlobalConfig[] => {
const sanitizedGlobals = globals.map((global) => { const sanitizedGlobals = globals.map((global) => {
const sanitizedGlobal = { ...global } const sanitizedGlobal = { ...global }
@@ -72,29 +71,33 @@ const sanitizeGlobals = (
}) })
if (!hasUpdatedAt) { if (!hasUpdatedAt) {
sanitizedGlobal.fields.push({ sanitizedGlobal.fields.push({
name: 'updatedAt',
admin: { admin: {
disableBulkEdit: true, disableBulkEdit: true,
hidden: true, hidden: true,
}, },
label: translations['general:updatedAt'], label: translations['general:updatedAt'],
name: 'updatedAt',
type: 'date', type: 'date',
}) })
} }
if (!hasCreatedAt) { if (!hasCreatedAt) {
sanitizedGlobal.fields.push({ sanitizedGlobal.fields.push({
name: 'createdAt',
admin: { admin: {
disableBulkEdit: true, disableBulkEdit: true,
hidden: true, hidden: true,
}, },
label: translations['general:createdAt'], label: translations['general:createdAt'],
name: 'createdAt',
type: 'date', type: 'date',
}) })
} }
const validRelationships = collections.map((c) => c.slug) const validRelationships = collections.map((c) => c.slug)
sanitizedGlobal.fields = sanitizeFields(sanitizedGlobal.fields, validRelationships) sanitizedGlobal.fields = sanitizeFields({
config,
fields: sanitizedGlobal.fields,
validRelationships,
})
return sanitizedGlobal as SanitizedGlobalConfig return sanitizedGlobal as SanitizedGlobalConfig
}) })

28
pnpm-lock.yaml generated
View File

@@ -54,15 +54,36 @@ importers:
get-port: get-port:
specifier: 5.1.1 specifier: 5.1.1
version: 5.1.1 version: 5.1.1
graphql-request:
specifier: 3.7.0
version: 3.7.0(graphql@16.7.1)
isomorphic-fetch:
specifier: 3.0.0
version: 3.0.0
jest: jest:
specifier: 29.6.4 specifier: 29.6.4
version: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) version: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1)
jest-environment-jsdom: jest-environment-jsdom:
specifier: 29.6.4 specifier: 29.6.4
version: 29.6.4 version: 29.6.4
jwt-decode:
specifier: 3.1.2
version: 3.1.2
mongodb-memory-server:
specifier: 8.13.0
version: 8.13.0
node-fetch:
specifier: 2.6.12
version: 2.6.12
prettier: prettier:
specifier: ^3.0.3 specifier: ^3.0.3
version: 3.0.3 version: 3.0.3
qs:
specifier: 6.11.2
version: 6.11.2
react:
specifier: 18.2.0
version: 18.2.0
shelljs: shelljs:
specifier: 0.8.5 specifier: 0.8.5
version: 0.8.5 version: 0.8.5
@@ -696,9 +717,6 @@ importers:
graphql-request: graphql-request:
specifier: 3.7.0 specifier: 3.7.0
version: 3.7.0(graphql@16.7.1) version: 3.7.0(graphql@16.7.1)
mongodb-memory-server:
specifier: 8.13.0
version: 8.13.0
node-fetch: node-fetch:
specifier: 2.6.12 specifier: 2.6.12
version: 2.6.12 version: 2.6.12
@@ -9131,7 +9149,6 @@ packages:
whatwg-fetch: 3.6.17 whatwg-fetch: 3.6.17
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
dev: false
/issue-parser@6.0.0: /issue-parser@6.0.0:
resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==} resolution: {integrity: sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==}
@@ -9853,7 +9870,6 @@ packages:
/jwt-decode@3.1.2: /jwt-decode@3.1.2:
resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==}
dev: false
/kareem@2.5.1: /kareem@2.5.1:
resolution: {integrity: sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==} resolution: {integrity: sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==}
@@ -12253,7 +12269,6 @@ packages:
engines: {node: '>=0.6'} engines: {node: '>=0.6'}
dependencies: dependencies:
side-channel: 1.0.4 side-channel: 1.0.4
dev: false
/qs@6.4.1: /qs@6.4.1:
resolution: {integrity: sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==} resolution: {integrity: sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==}
@@ -14547,7 +14562,6 @@ packages:
/whatwg-fetch@3.6.17: /whatwg-fetch@3.6.17:
resolution: {integrity: sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==} resolution: {integrity: sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==}
dev: false
/whatwg-mimetype@3.0.0: /whatwg-mimetype@3.0.0:
resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}

View File

@@ -4,17 +4,18 @@ import type { Post, RelyOnRequestHeader, Restricted } from './payload-types'
import payload from '../../packages/payload/src' import payload from '../../packages/payload/src'
import { Forbidden } from '../../packages/payload/src/errors' import { Forbidden } from '../../packages/payload/src/errors'
import { initPayloadTest } from '../helpers/configHelpers' import { initPayloadTest } from '../helpers/configHelpers'
import { requestHeaders } from './config'
import { import {
firstArrayText,
hiddenAccessSlug, hiddenAccessSlug,
hiddenFieldsSlug, hiddenFieldsSlug,
relyOnRequestHeadersSlug, relyOnRequestHeadersSlug,
requestHeaders,
restrictedSlug, restrictedSlug,
restrictedVersionsSlug, restrictedVersionsSlug,
secondArrayText,
siblingDataSlug, siblingDataSlug,
slug, slug,
} from './config' } from './shared'
import { firstArrayText, secondArrayText } from './shared'
describe('Access Control', () => { describe('Access Control', () => {
let post1: Post let post1: Post

View File

@@ -1,6 +1,5 @@
import { GraphQLClient } from 'graphql-request' import { GraphQLClient } from 'graphql-request'
import jwtDecode from 'jwt-decode' import jwtDecode from 'jwt-decode'
import mongoose from 'mongoose'
import type { User } from '../../packages/payload/src/auth' import type { User } from '../../packages/payload/src/auth'
@@ -8,7 +7,7 @@ import payload from '../../packages/payload/src'
import configPromise from '../collections-graphql/config' import configPromise from '../collections-graphql/config'
import { devUser } from '../credentials' import { devUser } from '../credentials'
import { initPayloadTest } from '../helpers/configHelpers' import { initPayloadTest } from '../helpers/configHelpers'
import { namedSaveToJWTValue, saveToJWTKey, slug } from './config' import { namedSaveToJWTValue, saveToJWTKey, slug } from './shared'
require('isomorphic-fetch') require('isomorphic-fetch')

View File

@@ -1,5 +1,4 @@
import { randomBytes } from 'crypto' import { randomBytes } from 'crypto'
import mongoose from 'mongoose'
import type { Relation } from './config' import type { Relation } from './config'
import type { ErrorOnHook, Post } from './payload-types' import type { ErrorOnHook, Post } from './payload-types'

View File

@@ -34,6 +34,7 @@ export async function initPayloadTest(options: Options): Promise<{ serverURL: st
...(options.init || {}), ...(options.init || {}),
} }
process.env.PAYLOAD_DROP_DATABASE = 'true'
process.env.NODE_ENV = 'test' process.env.NODE_ENV = 'test'
process.env.PAYLOAD_CONFIG_PATH = path.resolve(options.__dirname, './config.ts') process.env.PAYLOAD_CONFIG_PATH = path.resolve(options.__dirname, './config.ts')