login/node_modules/json-schema/test/tests.js
Amruta Kawade 45b10ffd19
Adding node_modules for dependabot (#67)
* Bump lodash from 4.17.15 to 4.17.19 (#52)

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Amruta Kawade <65217380+AmrutaKawade@users.noreply.github.com>

* Bump @actions/core from 1.1.3 to 1.2.6 (#60)

Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.1.3 to 1.2.6.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Amruta Kawade <65217380+AmrutaKawade@users.noreply.github.com>

* updating node_nodules

* updated package-lock

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-12 14:58:40 +05:30

95 lines
3.1 KiB
JavaScript

var assert = require('assert');
var vows = require('vows');
var path = require('path');
var fs = require('fs');
var validate = require('../lib/validate').validate;
var revision = 'draft-03';
var schemaRoot = path.join(__dirname, '..', revision);
var schemaNames = ['schema', 'hyper-schema', 'links', 'json-ref' ];
var schemas = {};
schemaNames.forEach(function(name) {
var file = path.join(schemaRoot, name);
schemas[name] = loadSchema(file);
});
schemaNames.forEach(function(name) {
var s, n = name+'-nsd', f = path.join(schemaRoot, name);
schemas[n] = loadSchema(f);
s = schemas[n];
delete s['$schema'];
});
function loadSchema(path) {
var data = fs.readFileSync(path, 'utf-8');
var schema = JSON.parse(data);
return schema;
}
function resultIsValid() {
return function(result) {
assert.isObject(result);
//assert.isBoolean(result.valid);
assert.equal(typeof(result.valid), 'boolean');
assert.isArray(result.errors);
for (var i = 0; i < result.errors.length; i++) {
assert.notEqual(result.errors[i], null, 'errors['+i+'] is null');
}
}
}
function assertValidates(doc, schema) {
var context = {};
context[': validate('+doc+', '+schema+')'] = {
topic: validate(schemas[doc], schemas[schema]),
'returns valid result': resultIsValid(),
'with valid=true': function(result) { assert.equal(result.valid, true); },
'and no errors': function(result) {
// XXX work-around for bug in vows: [null] chokes it
if (result.errors[0] == null) assert.fail('(errors contains null)');
assert.length(result.errors, 0);
}
};
return context;
}
function assertSelfValidates(doc) {
var context = {};
context[': validate('+doc+')'] = {
topic: validate(schemas[doc]),
'returns valid result': resultIsValid(),
'with valid=true': function(result) { assert.equal(result.valid, true); },
'and no errors': function(result) { assert.length(result.errors, 0); }
};
return context;
}
var suite = vows.describe('JSON Schema').addBatch({
'Core-NSD self-validates': assertSelfValidates('schema-nsd'),
'Core-NSD/Core-NSD': assertValidates('schema-nsd', 'schema-nsd'),
'Core-NSD/Core': assertValidates('schema-nsd', 'schema'),
'Core self-validates': assertSelfValidates('schema'),
'Core/Core': assertValidates('schema', 'schema'),
'Hyper-NSD self-validates': assertSelfValidates('hyper-schema-nsd'),
'Hyper self-validates': assertSelfValidates('hyper-schema'),
'Hyper/Hyper': assertValidates('hyper-schema', 'hyper-schema'),
'Hyper/Core': assertValidates('hyper-schema', 'schema'),
'Links-NSD self-validates': assertSelfValidates('links-nsd'),
'Links self-validates': assertSelfValidates('links'),
'Links/Hyper': assertValidates('links', 'hyper-schema'),
'Links/Core': assertValidates('links', 'schema'),
'Json-Ref self-validates': assertSelfValidates('json-ref'),
'Json-Ref/Hyper': assertValidates('json-ref', 'hyper-schema'),
'Json-Ref/Core': assertValidates('json-ref', 'schema')
}).export(module);