|
1 | 1 | 'use strict';
|
2 | 2 |
|
3 |
| -var Ajv = require('ajv'); |
4 |
| -var jsonSchemaTest = require('json-schema-test'); |
5 |
| -var assert = require('assert'); |
| 3 | +const Ajv = require('ajv'); |
| 4 | +const jsonSchemaTest = require('json-schema-test'); |
| 5 | +const assert = require('assert'); |
6 | 6 |
|
7 |
| -var refs = { |
| 7 | +const refs = { |
8 | 8 | 'http://localhost:1234/integer.json': require('./remotes/integer.json'),
|
9 | 9 | 'http://localhost:1234/subSchemas.json': require('./remotes/subSchemas.json'),
|
10 | 10 | 'http://localhost:1234/folder/folderInteger.json': require('./remotes/folder/folderInteger.json'),
|
11 | 11 | 'http://localhost:1234/name.json': require('./remotes/name.json')
|
12 | 12 | };
|
13 | 13 |
|
14 |
| -runTest(4); |
15 |
| -runTest(6); |
| 14 | +const SKIP = { |
| 15 | + 4: ['optional/zeroTerminatedFloats'], |
| 16 | + 7: ['optional/content', 'optional/format'] |
| 17 | +}; |
16 | 18 |
|
17 |
| -function runTest(draft) { |
18 |
| - var opts = { |
| 19 | +[4, 6, 7].forEach((draft) => { |
| 20 | + let opts = { |
19 | 21 | format: 'full',
|
20 |
| - formats: {'json-pointer': /^(?:\/(?:[^~\/]|~0|~1)*)*$/} |
| 22 | + unknownFormats: ['iri', 'iri-reference', 'idn-hostname', 'idn-email'] |
21 | 23 | };
|
22 |
| - if (draft == 4) opts.meta = false; |
23 |
| - var ajv = new Ajv(opts); |
24 |
| - ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json')); |
25 |
| - if (draft == 4) ajv._opts.defaultMeta = 'http://json-schema.org/draft-04/schema#'; |
26 |
| - for (var uri in refs) ajv.addSchema(refs[uri], uri); |
| 24 | + |
| 25 | + let ajv; |
| 26 | + if (draft == 7) { |
| 27 | + ajv = new Ajv(opts); |
| 28 | + } else { |
| 29 | + opts.meta = false; |
| 30 | + ajv = new Ajv(opts); |
| 31 | + ajv.addMetaSchema(require(`ajv/lib/refs/json-schema-draft-0${draft}.json`)); |
| 32 | + ajv._opts.defaultMeta = `http://json-schema.org/draft-0${draft}/schema#`; |
| 33 | + } |
| 34 | + for (const uri in refs) ajv.addSchema(refs[uri], uri); |
27 | 35 |
|
28 | 36 | jsonSchemaTest(ajv, {
|
29 |
| - description: 'Test suite draft-0' + draft, |
30 |
| - suites: {tests: './tests/draft' + draft + '/{**/,}*.json'}, |
31 |
| - skip: draft == 4 ? ['optional/zeroTerminatedFloats'] : [], |
| 37 | + description: `Test suite draft-0${draft}`, |
| 38 | + suites: {tests: `./tests/draft${draft}/{**/,}*.json`}, |
| 39 | + skip: SKIP[draft], |
32 | 40 | cwd: __dirname,
|
33 | 41 | hideFolder: 'tests/'
|
34 | 42 | });
|
35 |
| -} |
| 43 | +}); |
0 commit comments