From 503a54e7ae8447a253cc91e32f39f2e6f4eb923e Mon Sep 17 00:00:00 2001 From: Timothy Stott Date: Thu, 20 Sep 2018 16:14:10 +0100 Subject: [PATCH] :bug: Unable to compose schema with reference --- spec/pack_validate.spec.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/spec/pack_validate.spec.js b/spec/pack_validate.spec.js index cd11f7f..b87fe8c 100644 --- a/spec/pack_validate.spec.js +++ b/spec/pack_validate.spec.js @@ -122,6 +122,44 @@ describe('module for a single validation function', function() { assert.strictEqual(packedValidate('baz'), false); }); + it('should support schema compostion', function() { + ajv = new Ajv({sourceCode: true, inlineRefs: false}); + ajv.addSchema({ id: 'country', enum: ['GBR', 'USA'] }); + + var schema = { + definitions: { + foo: { + properties: { + foo: { $ref: 'country' } + } + }, + bar: { + properties: { + bar: { type: 'string' } + } + } + }, + allOf: [ + { + properties: { + baz: { type: 'string' }, + } + }, + { + oneOf: [ + { '$ref': '#/definitions/foo' }, + { '$ref': '#/definitions/bar' } + ] + } + ] + }; + + var packedValidate = packCompile(schema); + console.log(packedValidate); + const result = packedValidate({baz: 'bob', foo: 'USA'}); + assert.strictEqual(result, true); + }); + it('should support format keyword', function() { var schema = { type: 'string', format: 'date' }; var packedValidate = packCompile(schema);