From 6a14e347c481b496460c632d19cb655778b7936b Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Sat, 4 Jun 2016 21:16:11 +0100 Subject: [PATCH] use new with Ajv constructor in tests and examples --- README.md | 26 ++++----- spec/ajv.spec.js | 2 +- spec/ajv_async_instances.js | 2 +- spec/ajv_instances.js | 2 +- spec/async.spec.js | 6 +- spec/async_validate.spec.js | 10 ++-- spec/coercion.spec.js | 6 +- spec/errors.spec.js | 10 ++-- spec/issues.spec.js | 10 ++-- spec/options.spec.js | 106 ++++++++++++++++++------------------ spec/resolve.spec.js | 10 ++-- 11 files changed, 94 insertions(+), 96 deletions(-) diff --git a/README.md b/README.md index 9959126..c8a772f 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # Ajv: Another JSON Schema Validator -The fastest JSON Schema validator for node.js and browser. - -Supports [v5 proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals). +The fastest JSON Schema validator for node.js and browser. Supports [v5 proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals). [![Build Status](https://travis-ci.org/epoberezkin/ajv.svg?branch=master)](https://travis-ci.org/epoberezkin/ajv) @@ -101,7 +99,7 @@ The fastest validation call: ```javascript var Ajv = require('ajv'); -var ajv = Ajv(); // options can be passed, e.g. {allErrors: true} +var ajv = new Ajv(); // options can be passed, e.g. {allErrors: true} var validate = ajv.compile(schema); var valid = validate(data); if (!valid) console.log(validate.errors); @@ -316,7 +314,7 @@ During asynchronous compilation remote references are loaded using supplied func Example: ```javascript -var ajv = Ajv({ loadSchema: loadSchema }); +var ajv = new Ajv({ loadSchema: loadSchema }); ajv.compileAsync(schema, function (err, validate) { if (err) return; @@ -368,7 +366,7 @@ Example: * 3. es7 async functions transpiled with regenerator */ -var ajv = Ajv(); +var ajv = new Ajv(); ajv.addKeyword('idExists', { async: true, @@ -425,7 +423,7 @@ Ajv npm package includes minified browser bundles of regenerator and nodent in d #### Using nodent ```javascript -var ajv = Ajv({ /* async: 'es7', */ transpile: 'nodent' }); +var ajv = new Ajv({ /* async: 'es7', */ transpile: 'nodent' }); var validate = ajv.compile(schema); // transpiled es7 async function validate(data).then(successFunc).catch(errorFunc); ``` @@ -436,7 +434,7 @@ validate(data).then(successFunc).catch(errorFunc); #### Using regenerator ```javascript -var ajv = Ajv({ /* async: 'es7', */ transpile: 'regenerator' }); +var ajv = new Ajv({ /* async: 'es7', */ transpile: 'regenerator' }); var validate = ajv.compile(schema); // transpiled es7 async function validate(data).then(successFunc).catch(errorFunc); ``` @@ -447,7 +445,7 @@ validate(data).then(successFunc).catch(errorFunc); #### Using other transpilers ```javascript -var ajv = Ajv({ async: 'es7', transpile: transpileFunc }); +var ajv = new Ajv({ async: 'es7', transpile: transpileFunc }); var validate = ajv.compile(schema); // transpiled es7 async function validate(data).then(successFunc).catch(errorFunc); ``` @@ -485,7 +483,7 @@ This option modifies original data. Example: ```javascript -var ajv = Ajv({ removeAdditional: true }); +var ajv = new Ajv({ removeAdditional: true }); var schema = { "additionalProperties": false, "properties": { @@ -582,7 +580,7 @@ Inserting defaults by reference can be faster (in case you have an object in `de Example 1 (`default` in `properties`): ```javascript -var ajv = Ajv({ useDefaults: true }); +var ajv = new Ajv({ useDefaults: true }); var schema = { "type": "object", "properties": { @@ -622,7 +620,7 @@ console.log(data); // [ 1, "foo" ] Example 3 (inserting "defaults" by reference): ```javascript -var ajv = Ajv({ useDefaults: 'shared' }); +var ajv = new Ajv({ useDefaults: 'shared' }); var schema = { properties: { @@ -665,7 +663,7 @@ __Please note__: if you pass a scalar value to the validating function its type Example: ```javascript -var ajv = Ajv({ coerceTypes: true }); +var ajv = new Ajv({ coerceTypes: true }); var schema = { "type": "object", "properties": { @@ -690,7 +688,7 @@ See [Coercion rules](https://github.com/epoberezkin/ajv/blob/master/COERCION.md) ## API -##### Ajv(Object options) -> Object +##### new Ajv(Object options) -> Object Create Ajv instance. diff --git a/spec/ajv.spec.js b/spec/ajv.spec.js index 3028331..fdd4952 100644 --- a/spec/ajv.spec.js +++ b/spec/ajv.spec.js @@ -10,7 +10,7 @@ describe('Ajv', function () { var ajv; beforeEach(function() { - ajv = Ajv(); + ajv = new Ajv(); }); it('should create instance', function() { diff --git a/spec/ajv_async_instances.js b/spec/ajv_async_instances.js index 3556c8e..5658d9e 100644 --- a/spec/ajv_async_instances.js +++ b/spec/ajv_async_instances.js @@ -98,5 +98,5 @@ function getAjvInstances(opts) { function getAjv(opts){ - try { return Ajv(opts); } catch(e) {} + try { return new Ajv(opts); } catch(e) {} } diff --git a/spec/ajv_instances.js b/spec/ajv_instances.js index 53c7a8c..4e9843e 100644 --- a/spec/ajv_instances.js +++ b/spec/ajv_instances.js @@ -20,7 +20,7 @@ function _getAjvInstances(opts, useOpts) { var instances = _getAjvInstances(opts, useOpts) , instances1 = _getAjvInstances(opts, useOpts1); return instances.concat(instances1); - } else return [ Ajv(useOpts) ]; + } else return [ new Ajv(useOpts) ]; } diff --git a/spec/async.spec.js b/spec/async.spec.js index f1067dd..b181cd5 100644 --- a/spec/async.spec.js +++ b/spec/async.spec.js @@ -50,7 +50,7 @@ describe('compileAsync method', function() { beforeEach(function() { loadCallCount = 0; - ajv = Ajv({ loadSchema: loadSchema }); + ajv = new Ajv({ loadSchema: loadSchema }); }); @@ -201,7 +201,7 @@ describe('compileAsync method', function() { "type": "integer", "minimum": 2 }; - var ajv = Ajv(); + var ajv = new Ajv(); should.throw(function() { ajv.compileAsync(schema, function() { done(new Error('it should have thrown exception')); @@ -263,7 +263,7 @@ describe('compileAsync method', function() { "a": { "$ref": "object.json" } } }; - var ajv = Ajv({ loadSchema: badLoadSchema }); + var ajv = new Ajv({ loadSchema: badLoadSchema }); ajv.compileAsync(schema, function (err, validate) { should.exist(err); should.not.exist(validate); diff --git a/spec/async_validate.spec.js b/spec/async_validate.spec.js index 2404297..ee450f7 100644 --- a/spec/async_validate.spec.js +++ b/spec/async_validate.spec.js @@ -371,27 +371,27 @@ describe('async schemas, formats and keywords', function() { describe('async/transpile option', function() { it('should throw error with unknown async option', function() { shouldThrowFunc('bad async mode: es8', function() { - Ajv({ async: 'es8' }); + new Ajv({ async: 'es8' }); }); }); it('should throw error with unknown transpile option', function() { shouldThrowFunc('bad transpiler: babel', function() { - Ajv({ transpile: 'babel' }); + new Ajv({ transpile: 'babel' }); }); shouldThrowFunc('bad transpiler: [object Object]', function() { - Ajv({ transpile: {} }); + new Ajv({ transpile: {} }); }); }); it('should set async option to es7 if tranpiler is nodent', function() { - var ajv1 = Ajv({ transpile: 'nodent' }); + var ajv1 = new Ajv({ transpile: 'nodent' }); ajv1._opts.async .should.equal('es7'); - var ajv2 = Ajv({ async: '*', transpile: 'nodent' }); + var ajv2 = new Ajv({ async: '*', transpile: 'nodent' }); ajv2._opts.async .should.equal('es7'); }); }); diff --git a/spec/coercion.spec.js b/spec/coercion.spec.js index bbfaf3c..58af35d 100644 --- a/spec/coercion.spec.js +++ b/spec/coercion.spec.js @@ -140,8 +140,8 @@ describe('Type coercion', function () { var ajv, fullAjv, instances; beforeEach(function() { - ajv = Ajv({ coerceTypes: true, verbose: true }); - fullAjv = Ajv({ coerceTypes: true, verbose: true, allErrors: true }); + ajv = new Ajv({ coerceTypes: true, verbose: true }); + fullAjv = new Ajv({ coerceTypes: true, verbose: true, allErrors: true }); instances = [ ajv, fullAjv ]; }); @@ -263,7 +263,7 @@ describe('Type coercion', function () { it('should update data if the schema is in ref that is not inlined', function () { - instances.push(Ajv({ coerceTypes: true, inlineRefs: false })); + instances.push(new Ajv({ coerceTypes: true, inlineRefs: false })); var schema = { type: 'object', diff --git a/spec/errors.spec.js b/spec/errors.spec.js index 0e6cb4a..c6ac134 100644 --- a/spec/errors.spec.js +++ b/spec/errors.spec.js @@ -13,9 +13,9 @@ describe('Validation errors', function () { }); function createInstances(errorDataPath) { - ajv = Ajv({ errorDataPath: errorDataPath, loopRequired: 21 }); - ajvJP = Ajv({ errorDataPath: errorDataPath, jsonPointers: true, loopRequired: 21 }); - fullAjv = Ajv({ errorDataPath: errorDataPath, allErrors: true, jsonPointers: true, loopRequired: 21 }); + ajv = new Ajv({ errorDataPath: errorDataPath, loopRequired: 21 }); + ajvJP = new Ajv({ errorDataPath: errorDataPath, jsonPointers: true, loopRequired: 21 }); + fullAjv = new Ajv({ errorDataPath: errorDataPath, allErrors: true, jsonPointers: true, loopRequired: 21 }); } it('error should include dataPath', function() { @@ -265,7 +265,7 @@ describe('Validation errors', function () { it('should not validate required twice in large schemas with loopRequired option', function() { - var ajv = Ajv({ loopRequired: 1, allErrors: true }); + var ajv = new Ajv({ loopRequired: 1, allErrors: true }); var schema = { properties: { @@ -283,7 +283,7 @@ describe('Validation errors', function () { it('should not validate required twice with $data ref', function() { - var ajv = Ajv({ v5: true, allErrors: true }); + var ajv = new Ajv({ v5: true, allErrors: true }); var schema = { properties: { diff --git a/spec/issues.spec.js b/spec/issues.spec.js index d8d46e1..f3241c8 100644 --- a/spec/issues.spec.js +++ b/spec/issues.spec.js @@ -11,7 +11,7 @@ describe('issue #8: schema with shared references', function() { function spec(method) { return function() { - var ajv = Ajv(); + var ajv = new Ajv(); var propertySchema = { type: 'string', @@ -48,7 +48,7 @@ describe('issue #50: references with "definitions"', function () { return function() { var result; - var ajv = Ajv(); + var ajv = new Ajv(); ajv[method]({ id: 'http://example.com/test/person.json#', @@ -88,7 +88,7 @@ describe('issue #182, NaN validation', function() { var ajv; before(function(){ - ajv = Ajv(); + ajv = new Ajv(); }); it('should not pass minimum/maximum validation', function() { @@ -105,7 +105,7 @@ describe('issue #182, NaN validation', function() { }); function testNaN(schema, NaNisValid) { - var validate = Ajv().compile(schema); + var validate = new Ajv().compile(schema); validate(NaN) .should.equal(NaNisValid); } }); @@ -113,7 +113,7 @@ describe('issue #182, NaN validation', function() { describe('issue #204, options schemas and v5 used together', function() { it('should use v5 metaschemas by default', function() { - var ajv = Ajv({ + var ajv = new Ajv({ v5: true, schemas: [{id: 'str', type: 'string'}], }); diff --git a/spec/options.spec.js b/spec/options.spec.js index 0241d4e..27c6f53 100644 --- a/spec/options.spec.js +++ b/spec/options.spec.js @@ -9,7 +9,7 @@ var Ajv = require('./ajv') describe('Ajv Options', function () { describe('removeAdditional', function() { it('should remove all additional properties', function() { - var ajv = Ajv({ removeAdditional: 'all' }); + var ajv = new Ajv({ removeAdditional: 'all' }); ajv.addSchema({ id: '//test/fooBar', @@ -28,7 +28,7 @@ describe('Ajv Options', function () { it('should remove properties that would error when `additionalProperties = false`', function() { - var ajv = Ajv({ removeAdditional: true }); + var ajv = new Ajv({ removeAdditional: true }); ajv.addSchema({ id: '//test/fooBar', @@ -48,7 +48,7 @@ describe('Ajv Options', function () { it('should remove properties that would error when `additionalProperties` is a schema', function() { - var ajv = Ajv({ removeAdditional: 'failing' }); + var ajv = new Ajv({ removeAdditional: 'failing' }); ajv.addSchema({ id: '//test/fooBar', @@ -87,7 +87,7 @@ describe('Ajv Options', function () { describe('ownProperties', function() { it('should only validate against own properties of data if specified', function() { - var ajv = Ajv({ ownProperties: true }); + var ajv = new Ajv({ ownProperties: true }); var validate = ajv.compile({ properties: { c: { type: 'number' } }, additionalProperties: false @@ -103,7 +103,7 @@ describe('Ajv Options', function () { }); it('should only validate against own properties when using patternProperties', function() { - var ajv = Ajv({ allErrors: true, ownProperties: true }); + var ajv = new Ajv({ allErrors: true, ownProperties: true }); var validate = ajv.compile({ patternProperties: { 'f.*o': { type: 'integer' } }, }); @@ -118,7 +118,7 @@ describe('Ajv Options', function () { }); it('should only validate against own properties when using patternGroups', function() { - var ajv = Ajv({ v5: true, allErrors: true, ownProperties: true }); + var ajv = new Ajv({ v5: true, allErrors: true, ownProperties: true }); var validate = ajv.compile({ patternGroups: { 'f.*o': { schema: { type: 'integer' } } @@ -135,7 +135,7 @@ describe('Ajv Options', function () { }); it('should only validate against own properties when using patternRequired', function() { - var ajv = Ajv({ v5: true, allErrors: true, ownProperties: true }); + var ajv = new Ajv({ v5: true, allErrors: true, ownProperties: true }); var validate = ajv.compile({ patternRequired: [ 'f.*o' ] }); @@ -152,8 +152,8 @@ describe('Ajv Options', function () { describe('meta and validateSchema', function() { it('should add draft-4 meta schema by default', function() { - testOptionMeta(Ajv()); - testOptionMeta(Ajv({ meta: true })); + testOptionMeta(new Ajv()); + testOptionMeta(new Ajv({ meta: true })); function testOptionMeta(ajv) { ajv.getSchema('http://json-schema.org/draft-04/schema') .should.be.a('function'); @@ -165,19 +165,19 @@ describe('Ajv Options', function () { }); it('should throw if meta: false and validateSchema: true', function() { - var ajv = Ajv({ meta: false }); + var ajv = new Ajv({ meta: false }); should.not.exist(ajv.getSchema('http://json-schema.org/draft-04/schema')); should.throw(function() { ajv.addSchema({ type: 'integer' }, 'integer') }); }); it('should skip schema validation with validateSchema: false', function() { - var ajv = Ajv(); + var ajv = new Ajv(); should.throw(function() { ajv.addSchema({ type: 123 }, 'integer') }); - var ajv = Ajv({ validateSchema: false }); + var ajv = new Ajv({ validateSchema: false }); should.not.throw(function() { ajv.addSchema({ type: 123 }, 'integer') }); - var ajv = Ajv({ validateSchema: false, meta: false }); + var ajv = new Ajv({ validateSchema: false, meta: false }); should.not.throw(function() { ajv.addSchema({ type: 123 }, 'integer') }); }); @@ -186,21 +186,21 @@ describe('Ajv Options', function () { var loggedError = false; console.error = function() { loggedError = true; logError.apply(console, arguments); } - var ajv = Ajv({ validateSchema: 'log' }); + var ajv = new Ajv({ validateSchema: 'log' }); should.not.throw(function() { ajv.addSchema({ type: 123 }, 'integer') }); loggedError .should.equal(true); console.error = logError; - var ajv = Ajv({ validateSchema: 'log', meta: false }); + var ajv = new Ajv({ validateSchema: 'log', meta: false }); should.throw(function() { ajv.addSchema({ type: 123 }, 'integer') }); }); it('should validate v5 schema', function() { - var ajv = Ajv({ v5: true }); + var ajv = new Ajv({ v5: true }); ajv.validateSchema({ contains: { minimum: 2 } }) .should.equal(true); ajv.validateSchema({ contains: 2 }). should.equal(false); - var ajv = Ajv(); + var ajv = new Ajv(); ajv.validateSchema({ contains: 2 }). should.equal(true); }); @@ -211,7 +211,7 @@ describe('Ajv Options', function () { myKeyword: { type: 'boolean' } } }; - var ajv = Ajv({ meta: meta }); + var ajv = new Ajv({ meta: meta }); ajv.validateSchema({ myKeyword: true }) .should.equal(true); ajv.validateSchema({ myKeyword: 2 }) .should.equal(false); ajv.validateSchema({ @@ -219,7 +219,7 @@ describe('Ajv Options', function () { myKeyword: 2 }) .should.equal(true); - var ajv = Ajv(); + var ajv = new Ajv(); ajv.validateSchema({ myKeyword: true }) .should.equal(true); ajv.validateSchema({ myKeyword: 2 }) .should.equal(true); }); @@ -228,7 +228,7 @@ describe('Ajv Options', function () { describe('schemas', function() { it('should add schemas from object', function() { - var ajv = Ajv({ schemas: { + var ajv = new Ajv({ schemas: { int: { type: 'integer' }, str: { type: 'string' } }}); @@ -240,7 +240,7 @@ describe('Ajv Options', function () { }); it('should add schemas from array', function() { - var ajv = Ajv({ schemas: [ + var ajv = new Ajv({ schemas: [ { id: 'int', type: 'integer' }, { id: 'str', type: 'string' }, { id: 'obj', properties: { int: { $ref: 'int' }, str: { $ref: 'str' } } } @@ -255,8 +255,8 @@ describe('Ajv Options', function () { describe('format', function() { it('should not validate formats if option format == false', function() { - var ajv = Ajv() - , ajvFF = Ajv({ format: false }); + var ajv = new Ajv() + , ajvFF = new Ajv({ format: false }); var schema = { format: 'date-time' }; var invalideDateTime = '06/19/1963 08:30:06 PST'; @@ -266,8 +266,8 @@ describe('Ajv Options', function () { }); it('should not validate formatMaximum/Minimum if option format == false', function() { - var ajv = Ajv({ v5: true, allErrors: true }) - , ajvFF = Ajv({ v5: true, allErrors: true, format: false }); + var ajv = new Ajv({ v5: true, allErrors: true }) + , ajvFF = new Ajv({ v5: true, allErrors: true, format: false }); var schema = { format: 'date', @@ -283,7 +283,7 @@ describe('Ajv Options', function () { describe('formats', function() { it('should add formats from options', function() { - var ajv = Ajv({ formats: { + var ajv = new Ajv({ formats: { identifier: /^[a-z_$][a-z0-9_$]*$/i }}); @@ -297,15 +297,15 @@ describe('Ajv Options', function () { describe('missingRefs', function() { it('should throw if ref is missing without this option', function() { - var ajv = Ajv(); + var ajv = new Ajv(); should.throw(function() { ajv.compile({ $ref: 'missing_reference' }); }); }); it('should not throw and pass validation with missingRef == "ignore"', function() { - testMissingRefsIgnore(Ajv({ missingRefs: 'ignore' })); - testMissingRefsIgnore(Ajv({ missingRefs: 'ignore', allErrors: true })); + testMissingRefsIgnore(new Ajv({ missingRefs: 'ignore' })); + testMissingRefsIgnore(new Ajv({ missingRefs: 'ignore', allErrors: true })); function testMissingRefsIgnore(ajv) { var validate = ajv.compile({ $ref: 'missing_reference' }); @@ -314,10 +314,10 @@ describe('Ajv Options', function () { }); it('should not throw and fail validation with missingRef == "fail" if the ref is used', function() { - testMissingRefsFail(Ajv({ missingRefs: 'fail' })); - testMissingRefsFail(Ajv({ missingRefs: 'fail', verbose: true })); - testMissingRefsFail(Ajv({ missingRefs: 'fail', allErrors: true })); - testMissingRefsFail(Ajv({ missingRefs: 'fail', allErrors: true, verbose: true })); + testMissingRefsFail(new Ajv({ missingRefs: 'fail' })); + testMissingRefsFail(new Ajv({ missingRefs: 'fail', verbose: true })); + testMissingRefsFail(new Ajv({ missingRefs: 'fail', allErrors: true })); + testMissingRefsFail(new Ajv({ missingRefs: 'fail', allErrors: true, verbose: true })); function testMissingRefsFail(ajv) { var validate = ajv.compile({ @@ -338,8 +338,8 @@ describe('Ajv Options', function () { describe('uniqueItems', function() { it('should not validate uniqueItems with uniqueItems option == false', function() { - testUniqueItems(Ajv({ uniqueItems: false })); - testUniqueItems(Ajv({ uniqueItems: false, allErrors: true })); + testUniqueItems(new Ajv({ uniqueItems: false })); + testUniqueItems(new Ajv({ uniqueItems: false, allErrors: true })); function testUniqueItems(ajv) { var validate = ajv.compile({ uniqueItems: true }); @@ -352,9 +352,9 @@ describe('Ajv Options', function () { describe('unicode', function() { it('should use String.prototype.length with unicode option == false', function() { - var ajvUnicode = Ajv(); - testUnicode(Ajv({ unicode: false })); - testUnicode(Ajv({ unicode: false, allErrors: true })); + var ajvUnicode = new Ajv(); + testUnicode(new Ajv({ unicode: false })); + testUnicode(new Ajv({ unicode: false, allErrors: true })); function testUnicode(ajv) { var validateWithUnicode = ajvUnicode.compile({ minLength: 2 }); @@ -375,8 +375,8 @@ describe('Ajv Options', function () { describe('verbose', function() { it('should add schema, parentSchema and data to errors with verbose option == true', function() { - testVerbose(Ajv({ verbose: true })); - testVerbose(Ajv({ verbose: true, allErrors: true })); + testVerbose(new Ajv({ verbose: true })); + testVerbose(new Ajv({ verbose: true, allErrors: true })); function testVerbose(ajv) { var schema = { properties: { foo: { minimum: 5 } } }; @@ -398,8 +398,8 @@ describe('Ajv Options', function () { describe('multipleOfPrecision', function() { it('should allow for some deviation from 0 when validating multipleOf with value < 1', function() { - test(Ajv({ multipleOfPrecision: 7 })); - test(Ajv({ multipleOfPrecision: 7, allErrors: true })); + test(new Ajv({ multipleOfPrecision: 7 })); + test(new Ajv({ multipleOfPrecision: 7, allErrors: true })); function test(ajv) { var schema = { multipleOf: 0.01 }; @@ -456,8 +456,8 @@ describe('Ajv Options', function () { }); it('should replace undefined item with default value', function() { - test(Ajv({ useDefaults: true })); - test(Ajv({ useDefaults: true, allErrors: true })); + test(new Ajv({ useDefaults: true })); + test(new Ajv({ useDefaults: true, allErrors: true })); function test(ajv) { var schema = { @@ -490,15 +490,15 @@ describe('Ajv Options', function () { describe('useDefaults: by value / by reference', function() { describe('using by value', function() { it('should NOT modify underlying defaults when modifying validated data', function() { - test('value', Ajv({ useDefaults: true })); - test('value', Ajv({ useDefaults: true, allErrors: true })); + test('value', new Ajv({ useDefaults: true })); + test('value', new Ajv({ useDefaults: true, allErrors: true })); }); }); describe('using by reference', function() { it('should modify underlying defaults when modifying validated data', function() { - test('reference', Ajv({ useDefaults: 'shared' })); - test('reference', Ajv({ useDefaults: 'shared', allErrors: true })); + test('reference', new Ajv({ useDefaults: 'shared' })); + test('reference', new Ajv({ useDefaults: 'shared', allErrors: true })); }); }); @@ -541,7 +541,7 @@ describe('Ajv Options', function () { var ajv; beforeEach(function() { - ajv = Ajv({ addUsedSchema: optionValue }); + ajv = new Ajv({ addUsedSchema: optionValue }); }); describe('compile and validate', function() { @@ -579,7 +579,7 @@ describe('Ajv Options', function () { var ajv; beforeEach(function() { - ajv = Ajv({ addUsedSchema: false }); + ajv = new Ajv({ addUsedSchema: false }); }); @@ -647,7 +647,7 @@ describe('Ajv Options', function () { }) function getValidate(passContext) { - ajv = Ajv({ passContext: passContext, inlineRefs: false }); + ajv = new Ajv({ passContext: passContext, inlineRefs: false }); ajv.addKeyword('testValidate', { validate: storeContext }); ajv.addKeyword('testCompile', { compile: compileTestValidate }); @@ -683,8 +683,8 @@ describe('Ajv Options', function () { describe('allErrors', function() { it('should be disabled inside "not" keyword', function() { - test(Ajv(), false); - test(Ajv({ allErrors: true }), true); + test(new Ajv(), false); + test(new Ajv({ allErrors: true }), true); function test(ajv, allErrors) { var format1called = false diff --git a/spec/resolve.spec.js b/spec/resolve.spec.js index a0a1ea5..1107ebd 100644 --- a/spec/resolve.spec.js +++ b/spec/resolve.spec.js @@ -165,31 +165,31 @@ describe('resolve', function () { ]; it('by default should inline schema if it doesn\'t contain refs', function() { - var ajv = Ajv({ schemas: schemas }); + var ajv = new Ajv({ schemas: schemas }); testSchemas(ajv, true); }); it('should NOT inline schema if option inlineRefs == false', function() { - var ajv = Ajv({ schemas: schemas, inlineRefs: false }); + var ajv = new Ajv({ schemas: schemas, inlineRefs: false }); testSchemas(ajv, false); }); it('should inline schema if option inlineRefs is bigger than number of keys in referenced schema', function() { - var ajv = Ajv({ schemas: schemas, inlineRefs: 3 }); + var ajv = new Ajv({ schemas: schemas, inlineRefs: 3 }); testSchemas(ajv, true); }); it('should NOT inline schema if option inlineRefs is less than number of keys in referenced schema', function() { - var ajv = Ajv({ schemas: schemas, inlineRefs: 2 }); + var ajv = new Ajv({ schemas: schemas, inlineRefs: 2 }); testSchemas(ajv, false); }); it('should avoid schema substitution when refs are inlined (issue #77)', function() { - var ajv = Ajv({ verbose: true }); + var ajv = new Ajv({ verbose: true }); var schemaMessage = { $schema: "http://json-schema.org/draft-04/schema#",