class-validator-jsonschema
Version:
Convert class-validator-decorated classes into JSON schema
59 lines (50 loc) • 1.24 kB
text/typescript
// tslint:disable:no-submodule-imports
import { Exclude } from 'class-transformer'
import { Allow, IsOptional, IsString } from 'class-validator'
import { validationMetadatasToSchemas } from '../src'
const { defaultMetadataStorage } = require('class-transformer/cjs/storage')
class Parent {
inherited: unknown
inheritedInternal: unknown
excludedInUser: unknown
}
// @ts-ignore unused
class User extends Parent {
id: string
internal: unknown
excludedInUser: unknown
}
describe('Exclude() decorator', () => {
it('omits Exclude()-decorated properties from output schema', () => {
const schema = validationMetadatasToSchemas({
classTransformerMetadataStorage: defaultMetadataStorage,
})
expect(schema).toEqual({
Parent: {
properties: {
excludedInUser: {},
inherited: {},
},
type: 'object',
required: ['inherited', 'excludedInUser'],
},
User: {
properties: {
id: { type: 'string' },
inherited: {},
},
type: 'object',
required: ['id', 'inherited'],
},
})
})
})