UNPKG

pimatic

Version:

A home automation server and framework for the Raspberry PI running on node.js

74 lines (62 loc) 1.96 kB
// Unit tests. Run with mocha. /*global describe:true it:true should:true */ var should = require('should') , JaySchema = require('../lib/jayschema.js') ; describe('Sub-schemas:', function() { // test for issue found in #42 describe('anonymous sub-schemas used in failed oneOf validation should not ' + 'overwrite earlier error messages:', function() { var js = new JaySchema(); var schema = { type: 'object', properties: { result: { oneOf: [ { type: 'string' }, { type: 'number', 'enum': [400, 401, 404, 500] } ] } } }; var instance = { result: false }; var errs = js.validate(instance, schema); it('should show separate validation errors for each sub-schema', function() { errs.should.be.instanceOf(Array).and.have.lengthOf(1); errs[0].should.have.property('subSchemaValidationErrors'); var ssves = errs[0].subSchemaValidationErrors; ssves.should.have.property('sub-schema-1'); ssves.should.have.property('sub-schema-2'); }); }); describe('anonymous sub-schemas used in failed anyOf validation should not ' + 'overwrite earlier error messages:', function() { var js = new JaySchema(); var schema = { type: 'object', properties: { result: { anyOf: [ { type: 'string' }, { type: 'number', 'enum': [400, 401, 404, 500] } ] } } }; var instance = { result: false }; var errs = js.validate(instance, schema); it('should show separate validation errors for each sub-schema', function() { errs.should.be.instanceOf(Array).and.have.lengthOf(1); errs[0].should.have.property('subSchemaValidationErrors'); var ssves = errs[0].subSchemaValidationErrors; ssves.should.have.property('sub-schema-1'); ssves.should.have.property('sub-schema-2'); }); }); });