json-schema-preset
Version:
Produce a suitable default template / preset based on a JSON-Schema.
61 lines • 2.96 kB
JavaScript
/**
* json-schema-preset.test.ts
*
* Created by Dr. Maximillian Dornseif 2021-12-20 in json-schema-empty-arrays 1.0.0
* Copyright (c) 2021 Dr. Maximillian Dornseif
*/
import test from 'ava';
import { jsonPreset } from './json-schema-preset';
const schema = {
$id: 'https://huwawi3.hudora.de/schemata/H3Test',
$schema: 'http://json-schema.org/draft-07/schema#',
title: 'Test data',
type: 'object',
required: ['s1', 'n1'],
properties: {
s1: {
title: 's1',
type: 'string',
default: 'foo',
},
s2: {
title: 's2',
type: 'string',
default: '',
},
s3: {
title: 's3',
type: 'string',
},
n1: {
title: 'n1',
type: 'integer',
},
n2: {
title: 'n2',
type: 'integer',
},
n3: {
title: 'n3',
type: 'integer',
default: 3,
},
sub: {
type: 'array',
items: {
title: 'su1',
type: 'string',
},
},
},
};
test('handles simple schema', (t) => {
t.deepEqual(jsonPreset(schema), {
n3: 3,
s1: 'foo',
s2: '',
s3: '',
sub: [],
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zY2hlbWEtcHJlc2V0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2pzb24tc2NoZW1hLXByZXNldC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxJQUFJLE1BQU0sS0FBSyxDQUFBO0FBR3RCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVqRCxNQUFNLE1BQU0sR0FBZ0I7SUFDMUIsR0FBRyxFQUFFLDJDQUEyQztJQUNoRCxPQUFPLEVBQUUseUNBQXlDO0lBQ2xELEtBQUssRUFBRSxXQUFXO0lBQ2xCLElBQUksRUFBRSxRQUFRO0lBQ2QsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztJQUN0QixVQUFVLEVBQUU7UUFDVixFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLEtBQUs7U0FDZjtRQUNELEVBQUUsRUFBRTtZQUNGLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsRUFBRTtTQUNaO1FBQ0QsRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsUUFBUTtTQUNmO1FBQ0QsRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsU0FBUztTQUNoQjtRQUNELEVBQUUsRUFBRTtZQUNGLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLFNBQVM7U0FDaEI7UUFDRCxFQUFFLEVBQUU7WUFDRixLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxTQUFTO1lBQ2YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELEdBQUcsRUFBRTtZQUNILElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQTtBQUVELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzlCLEVBQUUsRUFBRSxDQUFDO1FBQ0wsRUFBRSxFQUFFLEtBQUs7UUFDVCxFQUFFLEVBQUUsRUFBRTtRQUNOLEVBQUUsRUFBRSxFQUFFO1FBQ04sR0FBRyxFQUFFLEVBQUU7S0FDRyxDQUFDLENBQUE7QUFDZixDQUFDLENBQUMsQ0FBQSJ9