sdjschema
Version:
SDJSchema(Self Description JSON Schema) is a tool which describes data presence, data type and data constraint to a JSON object
71 lines (54 loc) • 2.84 kB
JavaScript
const assert = require('assert');
const { valiType, valiConstraint, valiSdjs } = require('../index');
const { typesData, cstrsData, modelData } = require('./test-data');
var keys = Object.keys(typesData);
// starts testing
describe("SDJSchema Unit Test", function() {
describe("Testing data types", function() {
keys.forEach( function(key) {
it("Data type: " + key, function() {
assert.ok(valiType(key, "", typesData[key], ""), 'Type error: ' + key);
});
});
});
describe("Testing data constraints", function() {
it("Data constraint: maxInclusive", function() {
assert(valiConstraint({"maxInclusive": cstrsData.maxInclusive}, "", 999.99, ""), 'Constraint error');
});
it("Data constraint: minInclusive", function() {
assert(valiConstraint({"minInclusive": cstrsData.minInclusive}, "", 100.01, ""), 'Constraint error');
});
it("Data constraint: maxExclusive", function() {
assert(valiConstraint({"maxExclusive": cstrsData.maxExclusive}, "", 999.99, ""), 'Constraint error');
});
it("Data constraint: minExclusive", function() {
assert(valiConstraint({"minExclusive": cstrsData.minExclusive}, "", 100.01, ""), 'Constraint error');
});
it("Data constraint: totalDigits", function() {
assert(valiConstraint({"totalDigits": cstrsData.totalDigits}, "", 10025, ""), 'Constraint error');
});
it("Data constraint: fractionDigits", function() {
assert(valiConstraint({"fractionDigits": cstrsData.fractionDigits}, "", 12.56, ""), 'Constraint error');
});
it("Data constraint: length", function() {
assert(valiConstraint({"length": cstrsData.length}, "", "Self Description JSON Schema", ""), 'Constraint error');
});
it("Data constraint: maxLength", function() {
assert(valiConstraint({"maxLength": cstrsData.maxLength}, "", "Data maximum length", ""), 'Constraint error');
});
it("Data constraint: minLength", function() {
assert(valiConstraint({"minLength": cstrsData.minLength}, "", "Data minimum length", ""), 'Constraint error');
});
it("Data constraint: pattern", function() {
assert(valiConstraint({"pattern": cstrsData.pattern}, "", "3 divided by 4 is 3/4", ""), 'Constraint error');
});
it("Data constraint: enumeration", function() {
assert(valiConstraint({"enumeration": cstrsData.enumeration}, "", "jpg", ""), 'Constraint error');
});
});
describe("Testing data SDJS(Self Description JSON Schema)", function() {
it("Data SDJS", function() {
assert(valiSdjs(modelData), 'SDJS error');
});
});
});