mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-14 04:43:14 +00:00
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import Ajv from 'ajv';
|
|
import test from 'ava';
|
|
import fs = require('fs');
|
|
import yaml = require('js-yaml');
|
|
import path = require('path');
|
|
const schema = yaml.load(fs.readFileSync(path.resolve(__dirname, '../../schemas/schema.yml'), 'utf8'));
|
|
const ajv = new Ajv({jsonPointers: true});
|
|
const validate = ajv.compile(schema);
|
|
|
|
let fixtures = fs.readdirSync(path.join(__dirname, 'fixtures'));
|
|
fixtures = fixtures.filter(item => !item.includes('.skip'));
|
|
if (fixtures.find(item => item.includes('.only'))) {
|
|
fixtures = fixtures.filter(item => item.includes('.only'));
|
|
}
|
|
|
|
for (const dir of fixtures) {
|
|
const fullPath = path.join(__dirname, 'fixtures', dir);
|
|
test(`should be right in dir ${dir}`, async (t) => {
|
|
const json = yaml.safeLoad(fs.readFileSync(path.resolve(fullPath, 'schema.json'), 'utf-8'));
|
|
let validateResult: any = validate(json);
|
|
if (validateResult === true) {
|
|
validateResult = {
|
|
success: true,
|
|
};
|
|
} else {
|
|
validateResult = {
|
|
success: false,
|
|
errors: validate.errors,
|
|
};
|
|
}
|
|
|
|
t.snapshot(validateResult);
|
|
});
|
|
} |