Implements a select-like API into the form state endpoint. This follows the same spec as the Select API on existing Payload operations, but works on form state rather than at the db level. This means you can send the `select` argument through the form state handler, and it will only process and return the fields you've explicitly identified. This is especially useful when you only need to generate a partial form state, for example within the bulk edit form where you select only a subset of fields to edit. There is no need to iterate all fields of the schema, generate default values for each, and return them all through the network. This will also simplify and reduce the amount of client-side processing required, where we longer need to strip unselected fields before submission.
59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
const esModules = [
|
|
// file-type and all dependencies: https://github.com/sindresorhus/file-type
|
|
'file-type',
|
|
'strtok3',
|
|
'readable-web-to-node-stream',
|
|
'token-types',
|
|
'peek-readable',
|
|
'locate-path',
|
|
'p-locate',
|
|
'p-limit',
|
|
'yocto-queue',
|
|
'unicorn-magic',
|
|
'path-exists',
|
|
'qs-esm',
|
|
'uint8array-extras',
|
|
'@faceless-ui/window-info',
|
|
'@faceless-ui/modal',
|
|
'@faceless-ui/scroll-info',
|
|
].join('|')
|
|
|
|
import path from 'path'
|
|
import { fileURLToPath } from 'url'
|
|
|
|
const filename = fileURLToPath(import.meta.url)
|
|
const dirname = path.dirname(filename)
|
|
|
|
/** @type {import('jest').Config} */
|
|
const baseJestConfig = {
|
|
extensionsToTreatAsEsm: ['.ts', '.tsx'],
|
|
setupFilesAfterEnv: ['<rootDir>/test/jest.setup.js'],
|
|
transformIgnorePatterns: [
|
|
`/node_modules/(?!.pnpm)(?!(${esModules})/)`,
|
|
`/node_modules/.pnpm/(?!(${esModules.replace(/\//g, '\\+')})@)`,
|
|
],
|
|
moduleNameMapper: {
|
|
'\\.(css|scss)$': '<rootDir>/test/helpers/mocks/emptyModule.js',
|
|
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
|
|
'<rootDir>/test/helpers/mocks/fileMock.js',
|
|
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
},
|
|
testEnvironment: 'node',
|
|
testMatch: ['<rootDir>/packages/*/src/**/*.spec.ts'],
|
|
testTimeout: 90000,
|
|
transform: {
|
|
'^.+\\.(t|j)sx?$': ['@swc/jest'],
|
|
},
|
|
verbose: true,
|
|
reporters: [
|
|
path.resolve(dirname, './test/jest-spec-reporter.cjs'),
|
|
path.resolve(dirname, './test/jestreporter.cjs'),
|
|
],
|
|
}
|
|
|
|
if (process.env.CI) {
|
|
baseJestConfig.reporters.push(['github-actions', { silent: false }], 'summary')
|
|
}
|
|
|
|
export default baseJestConfig
|