@r1tsu/payload
Version:
68 lines (67 loc) • 2.28 kB
JavaScript
import { sanitizeConfig } from '../config/sanitize.js';
import { configToJSONSchema } from './configToJSONSchema.js';
describe('configToJSONSchema', ()=>{
it('should handle optional arrays with required fields', ()=>{
const config = {
collections: [
{
fields: [
{
name: 'someRequiredField',
type: 'array',
fields: [
{
name: 'someRequiredField',
required: true,
type: 'text'
}
]
}
],
slug: 'test',
timestamps: false
}
]
};
const sanitizedConfig = sanitizeConfig(config);
const schema = configToJSONSchema(sanitizedConfig, 'text');
expect(schema?.definitions?.test).toStrictEqual({
additionalProperties: false,
properties: {
id: {
type: 'string'
},
someRequiredField: {
items: {
additionalProperties: false,
properties: {
id: {
type: [
'string',
'null'
]
},
someRequiredField: {
type: 'string'
}
},
required: [
'someRequiredField'
],
type: 'object'
},
type: [
'array',
'null'
]
}
},
required: [
'id'
],
title: 'Test',
type: 'object'
});
});
});
//# sourceMappingURL=configToJSONSchema.spec.js.map