json_schemer 0.2.9 → 0.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +3 -9
  3. data/Gemfile.lock +6 -6
  4. data/json_schemer.gemspec +2 -2
  5. data/lib/json_schemer.rb +2 -0
  6. data/lib/json_schemer/errors.rb +31 -0
  7. data/lib/json_schemer/schema/base.rb +13 -16
  8. data/lib/json_schemer/version.rb +1 -1
  9. metadata +5 -234
  10. data/JSON-Schema-Test-Suite/.gitignore +0 -1
  11. data/JSON-Schema-Test-Suite/.travis.yml +0 -8
  12. data/JSON-Schema-Test-Suite/LICENSE +0 -19
  13. data/JSON-Schema-Test-Suite/README.md +0 -181
  14. data/JSON-Schema-Test-Suite/bin/jsonschema_suite +0 -298
  15. data/JSON-Schema-Test-Suite/index.js +0 -45
  16. data/JSON-Schema-Test-Suite/package.json +0 -28
  17. data/JSON-Schema-Test-Suite/remotes/folder/folderInteger.json +0 -3
  18. data/JSON-Schema-Test-Suite/remotes/integer.json +0 -3
  19. data/JSON-Schema-Test-Suite/remotes/name-defs.json +0 -15
  20. data/JSON-Schema-Test-Suite/remotes/name.json +0 -15
  21. data/JSON-Schema-Test-Suite/remotes/subSchemas.json +0 -8
  22. data/JSON-Schema-Test-Suite/test-schema.json +0 -59
  23. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalItems.json +0 -87
  24. data/JSON-Schema-Test-Suite/tests/draft2019-09/additionalProperties.json +0 -133
  25. data/JSON-Schema-Test-Suite/tests/draft2019-09/allOf.json +0 -218
  26. data/JSON-Schema-Test-Suite/tests/draft2019-09/anchor.json +0 -87
  27. data/JSON-Schema-Test-Suite/tests/draft2019-09/anyOf.json +0 -189
  28. data/JSON-Schema-Test-Suite/tests/draft2019-09/boolean_schema.json +0 -104
  29. data/JSON-Schema-Test-Suite/tests/draft2019-09/const.json +0 -170
  30. data/JSON-Schema-Test-Suite/tests/draft2019-09/contains.json +0 -95
  31. data/JSON-Schema-Test-Suite/tests/draft2019-09/default.json +0 -49
  32. data/JSON-Schema-Test-Suite/tests/draft2019-09/defs.json +0 -24
  33. data/JSON-Schema-Test-Suite/tests/draft2019-09/dependencies.json +0 -268
  34. data/JSON-Schema-Test-Suite/tests/draft2019-09/enum.json +0 -179
  35. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMaximum.json +0 -30
  36. data/JSON-Schema-Test-Suite/tests/draft2019-09/exclusiveMinimum.json +0 -30
  37. data/JSON-Schema-Test-Suite/tests/draft2019-09/format.json +0 -614
  38. data/JSON-Schema-Test-Suite/tests/draft2019-09/if-then-else.json +0 -188
  39. data/JSON-Schema-Test-Suite/tests/draft2019-09/items.json +0 -250
  40. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxItems.json +0 -28
  41. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxLength.json +0 -33
  42. data/JSON-Schema-Test-Suite/tests/draft2019-09/maxProperties.json +0 -38
  43. data/JSON-Schema-Test-Suite/tests/draft2019-09/maximum.json +0 -28
  44. data/JSON-Schema-Test-Suite/tests/draft2019-09/minItems.json +0 -28
  45. data/JSON-Schema-Test-Suite/tests/draft2019-09/minLength.json +0 -33
  46. data/JSON-Schema-Test-Suite/tests/draft2019-09/minProperties.json +0 -38
  47. data/JSON-Schema-Test-Suite/tests/draft2019-09/minimum.json +0 -59
  48. data/JSON-Schema-Test-Suite/tests/draft2019-09/multipleOf.json +0 -60
  49. data/JSON-Schema-Test-Suite/tests/draft2019-09/not.json +0 -117
  50. data/JSON-Schema-Test-Suite/tests/draft2019-09/oneOf.json +0 -206
  51. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/bignum.json +0 -105
  52. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/content.json +0 -77
  53. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/ecmascript-regex.json +0 -213
  54. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date-time.json +0 -53
  55. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/date.json +0 -23
  56. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/email.json +0 -18
  57. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/hostname.json +0 -33
  58. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-email.json +0 -18
  59. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/idn-hostname.json +0 -28
  60. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv4.json +0 -33
  61. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/ipv6.json +0 -28
  62. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri-reference.json +0 -43
  63. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/iri.json +0 -53
  64. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/json-pointer.json +0 -168
  65. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/regex.json +0 -18
  66. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/relative-json-pointer.json +0 -33
  67. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/time.json +0 -23
  68. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-reference.json +0 -43
  69. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri-template.json +0 -28
  70. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/format/uri.json +0 -103
  71. data/JSON-Schema-Test-Suite/tests/draft2019-09/optional/zeroTerminatedFloats.json +0 -15
  72. data/JSON-Schema-Test-Suite/tests/draft2019-09/pattern.json +0 -34
  73. data/JSON-Schema-Test-Suite/tests/draft2019-09/patternProperties.json +0 -151
  74. data/JSON-Schema-Test-Suite/tests/draft2019-09/properties.json +0 -167
  75. data/JSON-Schema-Test-Suite/tests/draft2019-09/propertyNames.json +0 -78
  76. data/JSON-Schema-Test-Suite/tests/draft2019-09/ref.json +0 -359
  77. data/JSON-Schema-Test-Suite/tests/draft2019-09/refRemote.json +0 -167
  78. data/JSON-Schema-Test-Suite/tests/draft2019-09/required.json +0 -105
  79. data/JSON-Schema-Test-Suite/tests/draft2019-09/type.json +0 -464
  80. data/JSON-Schema-Test-Suite/tests/draft2019-09/uniqueItems.json +0 -173
  81. data/JSON-Schema-Test-Suite/tests/draft3/additionalItems.json +0 -82
  82. data/JSON-Schema-Test-Suite/tests/draft3/additionalProperties.json +0 -133
  83. data/JSON-Schema-Test-Suite/tests/draft3/default.json +0 -49
  84. data/JSON-Schema-Test-Suite/tests/draft3/dependencies.json +0 -118
  85. data/JSON-Schema-Test-Suite/tests/draft3/disallow.json +0 -80
  86. data/JSON-Schema-Test-Suite/tests/draft3/divisibleBy.json +0 -60
  87. data/JSON-Schema-Test-Suite/tests/draft3/enum.json +0 -71
  88. data/JSON-Schema-Test-Suite/tests/draft3/extends.json +0 -94
  89. data/JSON-Schema-Test-Suite/tests/draft3/format.json +0 -362
  90. data/JSON-Schema-Test-Suite/tests/draft3/items.json +0 -46
  91. data/JSON-Schema-Test-Suite/tests/draft3/maxItems.json +0 -28
  92. data/JSON-Schema-Test-Suite/tests/draft3/maxLength.json +0 -33
  93. data/JSON-Schema-Test-Suite/tests/draft3/maximum.json +0 -42
  94. data/JSON-Schema-Test-Suite/tests/draft3/minItems.json +0 -28
  95. data/JSON-Schema-Test-Suite/tests/draft3/minLength.json +0 -33
  96. data/JSON-Schema-Test-Suite/tests/draft3/minimum.json +0 -73
  97. data/JSON-Schema-Test-Suite/tests/draft3/optional/bignum.json +0 -107
  98. data/JSON-Schema-Test-Suite/tests/draft3/optional/ecmascript-regex.json +0 -18
  99. data/JSON-Schema-Test-Suite/tests/draft3/optional/format.json +0 -227
  100. data/JSON-Schema-Test-Suite/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
  101. data/JSON-Schema-Test-Suite/tests/draft3/pattern.json +0 -34
  102. data/JSON-Schema-Test-Suite/tests/draft3/patternProperties.json +0 -115
  103. data/JSON-Schema-Test-Suite/tests/draft3/properties.json +0 -97
  104. data/JSON-Schema-Test-Suite/tests/draft3/ref.json +0 -192
  105. data/JSON-Schema-Test-Suite/tests/draft3/refRemote.json +0 -74
  106. data/JSON-Schema-Test-Suite/tests/draft3/required.json +0 -53
  107. data/JSON-Schema-Test-Suite/tests/draft3/type.json +0 -489
  108. data/JSON-Schema-Test-Suite/tests/draft3/uniqueItems.json +0 -163
  109. data/JSON-Schema-Test-Suite/tests/draft4/additionalItems.json +0 -87
  110. data/JSON-Schema-Test-Suite/tests/draft4/additionalProperties.json +0 -133
  111. data/JSON-Schema-Test-Suite/tests/draft4/allOf.json +0 -185
  112. data/JSON-Schema-Test-Suite/tests/draft4/anyOf.json +0 -156
  113. data/JSON-Schema-Test-Suite/tests/draft4/default.json +0 -49
  114. data/JSON-Schema-Test-Suite/tests/draft4/definitions.json +0 -32
  115. data/JSON-Schema-Test-Suite/tests/draft4/dependencies.json +0 -194
  116. data/JSON-Schema-Test-Suite/tests/draft4/enum.json +0 -179
  117. data/JSON-Schema-Test-Suite/tests/draft4/format.json +0 -218
  118. data/JSON-Schema-Test-Suite/tests/draft4/items.json +0 -195
  119. data/JSON-Schema-Test-Suite/tests/draft4/maxItems.json +0 -28
  120. data/JSON-Schema-Test-Suite/tests/draft4/maxLength.json +0 -33
  121. data/JSON-Schema-Test-Suite/tests/draft4/maxProperties.json +0 -38
  122. data/JSON-Schema-Test-Suite/tests/draft4/maximum.json +0 -73
  123. data/JSON-Schema-Test-Suite/tests/draft4/minItems.json +0 -28
  124. data/JSON-Schema-Test-Suite/tests/draft4/minLength.json +0 -33
  125. data/JSON-Schema-Test-Suite/tests/draft4/minProperties.json +0 -38
  126. data/JSON-Schema-Test-Suite/tests/draft4/minimum.json +0 -104
  127. data/JSON-Schema-Test-Suite/tests/draft4/multipleOf.json +0 -60
  128. data/JSON-Schema-Test-Suite/tests/draft4/not.json +0 -96
  129. data/JSON-Schema-Test-Suite/tests/draft4/oneOf.json +0 -162
  130. data/JSON-Schema-Test-Suite/tests/draft4/optional/bignum.json +0 -107
  131. data/JSON-Schema-Test-Suite/tests/draft4/optional/ecmascript-regex.json +0 -213
  132. data/JSON-Schema-Test-Suite/tests/draft4/optional/format.json +0 -253
  133. data/JSON-Schema-Test-Suite/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  134. data/JSON-Schema-Test-Suite/tests/draft4/pattern.json +0 -34
  135. data/JSON-Schema-Test-Suite/tests/draft4/patternProperties.json +0 -120
  136. data/JSON-Schema-Test-Suite/tests/draft4/properties.json +0 -136
  137. data/JSON-Schema-Test-Suite/tests/draft4/ref.json +0 -411
  138. data/JSON-Schema-Test-Suite/tests/draft4/refRemote.json +0 -171
  139. data/JSON-Schema-Test-Suite/tests/draft4/required.json +0 -89
  140. data/JSON-Schema-Test-Suite/tests/draft4/type.json +0 -464
  141. data/JSON-Schema-Test-Suite/tests/draft4/uniqueItems.json +0 -173
  142. data/JSON-Schema-Test-Suite/tests/draft6/additionalItems.json +0 -87
  143. data/JSON-Schema-Test-Suite/tests/draft6/additionalProperties.json +0 -133
  144. data/JSON-Schema-Test-Suite/tests/draft6/allOf.json +0 -218
  145. data/JSON-Schema-Test-Suite/tests/draft6/anyOf.json +0 -189
  146. data/JSON-Schema-Test-Suite/tests/draft6/boolean_schema.json +0 -104
  147. data/JSON-Schema-Test-Suite/tests/draft6/const.json +0 -170
  148. data/JSON-Schema-Test-Suite/tests/draft6/contains.json +0 -100
  149. data/JSON-Schema-Test-Suite/tests/draft6/default.json +0 -49
  150. data/JSON-Schema-Test-Suite/tests/draft6/definitions.json +0 -32
  151. data/JSON-Schema-Test-Suite/tests/draft6/dependencies.json +0 -268
  152. data/JSON-Schema-Test-Suite/tests/draft6/enum.json +0 -179
  153. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMaximum.json +0 -30
  154. data/JSON-Schema-Test-Suite/tests/draft6/exclusiveMinimum.json +0 -30
  155. data/JSON-Schema-Test-Suite/tests/draft6/format.json +0 -326
  156. data/JSON-Schema-Test-Suite/tests/draft6/items.json +0 -250
  157. data/JSON-Schema-Test-Suite/tests/draft6/maxItems.json +0 -28
  158. data/JSON-Schema-Test-Suite/tests/draft6/maxLength.json +0 -33
  159. data/JSON-Schema-Test-Suite/tests/draft6/maxProperties.json +0 -38
  160. data/JSON-Schema-Test-Suite/tests/draft6/maximum.json +0 -28
  161. data/JSON-Schema-Test-Suite/tests/draft6/minItems.json +0 -28
  162. data/JSON-Schema-Test-Suite/tests/draft6/minLength.json +0 -33
  163. data/JSON-Schema-Test-Suite/tests/draft6/minProperties.json +0 -38
  164. data/JSON-Schema-Test-Suite/tests/draft6/minimum.json +0 -59
  165. data/JSON-Schema-Test-Suite/tests/draft6/multipleOf.json +0 -60
  166. data/JSON-Schema-Test-Suite/tests/draft6/not.json +0 -117
  167. data/JSON-Schema-Test-Suite/tests/draft6/oneOf.json +0 -206
  168. data/JSON-Schema-Test-Suite/tests/draft6/optional/bignum.json +0 -105
  169. data/JSON-Schema-Test-Suite/tests/draft6/optional/ecmascript-regex.json +0 -213
  170. data/JSON-Schema-Test-Suite/tests/draft6/optional/format.json +0 -491
  171. data/JSON-Schema-Test-Suite/tests/draft6/optional/zeroTerminatedFloats.json +0 -15
  172. data/JSON-Schema-Test-Suite/tests/draft6/pattern.json +0 -34
  173. data/JSON-Schema-Test-Suite/tests/draft6/patternProperties.json +0 -151
  174. data/JSON-Schema-Test-Suite/tests/draft6/properties.json +0 -167
  175. data/JSON-Schema-Test-Suite/tests/draft6/propertyNames.json +0 -78
  176. data/JSON-Schema-Test-Suite/tests/draft6/ref.json +0 -443
  177. data/JSON-Schema-Test-Suite/tests/draft6/refRemote.json +0 -171
  178. data/JSON-Schema-Test-Suite/tests/draft6/required.json +0 -105
  179. data/JSON-Schema-Test-Suite/tests/draft6/type.json +0 -464
  180. data/JSON-Schema-Test-Suite/tests/draft6/uniqueItems.json +0 -173
  181. data/JSON-Schema-Test-Suite/tests/draft7/additionalItems.json +0 -87
  182. data/JSON-Schema-Test-Suite/tests/draft7/additionalProperties.json +0 -133
  183. data/JSON-Schema-Test-Suite/tests/draft7/allOf.json +0 -218
  184. data/JSON-Schema-Test-Suite/tests/draft7/anyOf.json +0 -189
  185. data/JSON-Schema-Test-Suite/tests/draft7/boolean_schema.json +0 -104
  186. data/JSON-Schema-Test-Suite/tests/draft7/const.json +0 -170
  187. data/JSON-Schema-Test-Suite/tests/draft7/contains.json +0 -100
  188. data/JSON-Schema-Test-Suite/tests/draft7/default.json +0 -49
  189. data/JSON-Schema-Test-Suite/tests/draft7/definitions.json +0 -32
  190. data/JSON-Schema-Test-Suite/tests/draft7/dependencies.json +0 -268
  191. data/JSON-Schema-Test-Suite/tests/draft7/enum.json +0 -179
  192. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMaximum.json +0 -30
  193. data/JSON-Schema-Test-Suite/tests/draft7/exclusiveMinimum.json +0 -30
  194. data/JSON-Schema-Test-Suite/tests/draft7/format.json +0 -614
  195. data/JSON-Schema-Test-Suite/tests/draft7/if-then-else.json +0 -188
  196. data/JSON-Schema-Test-Suite/tests/draft7/items.json +0 -250
  197. data/JSON-Schema-Test-Suite/tests/draft7/maxItems.json +0 -28
  198. data/JSON-Schema-Test-Suite/tests/draft7/maxLength.json +0 -33
  199. data/JSON-Schema-Test-Suite/tests/draft7/maxProperties.json +0 -38
  200. data/JSON-Schema-Test-Suite/tests/draft7/maximum.json +0 -28
  201. data/JSON-Schema-Test-Suite/tests/draft7/minItems.json +0 -28
  202. data/JSON-Schema-Test-Suite/tests/draft7/minLength.json +0 -33
  203. data/JSON-Schema-Test-Suite/tests/draft7/minProperties.json +0 -38
  204. data/JSON-Schema-Test-Suite/tests/draft7/minimum.json +0 -59
  205. data/JSON-Schema-Test-Suite/tests/draft7/multipleOf.json +0 -60
  206. data/JSON-Schema-Test-Suite/tests/draft7/not.json +0 -117
  207. data/JSON-Schema-Test-Suite/tests/draft7/oneOf.json +0 -206
  208. data/JSON-Schema-Test-Suite/tests/draft7/optional/bignum.json +0 -105
  209. data/JSON-Schema-Test-Suite/tests/draft7/optional/content.json +0 -77
  210. data/JSON-Schema-Test-Suite/tests/draft7/optional/ecmascript-regex.json +0 -213
  211. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date-time.json +0 -53
  212. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/date.json +0 -23
  213. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/email.json +0 -18
  214. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/hostname.json +0 -33
  215. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-email.json +0 -18
  216. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/idn-hostname.json +0 -28
  217. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv4.json +0 -33
  218. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/ipv6.json +0 -28
  219. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri-reference.json +0 -43
  220. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/iri.json +0 -53
  221. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/json-pointer.json +0 -168
  222. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/regex.json +0 -18
  223. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/relative-json-pointer.json +0 -33
  224. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/time.json +0 -23
  225. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-reference.json +0 -43
  226. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri-template.json +0 -28
  227. data/JSON-Schema-Test-Suite/tests/draft7/optional/format/uri.json +0 -103
  228. data/JSON-Schema-Test-Suite/tests/draft7/optional/zeroTerminatedFloats.json +0 -15
  229. data/JSON-Schema-Test-Suite/tests/draft7/pattern.json +0 -34
  230. data/JSON-Schema-Test-Suite/tests/draft7/patternProperties.json +0 -151
  231. data/JSON-Schema-Test-Suite/tests/draft7/properties.json +0 -167
  232. data/JSON-Schema-Test-Suite/tests/draft7/propertyNames.json +0 -78
  233. data/JSON-Schema-Test-Suite/tests/draft7/ref.json +0 -443
  234. data/JSON-Schema-Test-Suite/tests/draft7/refRemote.json +0 -171
  235. data/JSON-Schema-Test-Suite/tests/draft7/required.json +0 -105
  236. data/JSON-Schema-Test-Suite/tests/draft7/type.json +0 -464
  237. data/JSON-Schema-Test-Suite/tests/draft7/uniqueItems.json +0 -173
  238. data/JSON-Schema-Test-Suite/tests/latest +0 -1
  239. data/JSON-Schema-Test-Suite/tox.ini +0 -9
@@ -1,45 +0,0 @@
1
- 'use strict';
2
-
3
- const Ajv = require('ajv');
4
- const jsonSchemaTest = require('json-schema-test');
5
- const assert = require('assert');
6
-
7
- const refs = {
8
- 'http://localhost:1234/integer.json': require('./remotes/integer.json'),
9
- 'http://localhost:1234/subSchemas.json': require('./remotes/subSchemas.json'),
10
- 'http://localhost:1234/folder/folderInteger.json': require('./remotes/folder/folderInteger.json'),
11
- 'http://localhost:1234/name.json': require('./remotes/name.json'),
12
- 'http://localhost:1234/name-defs.json': require('./remotes/name-defs.json')
13
- };
14
-
15
- const SKIP = {
16
- 4: ['optional/zeroTerminatedFloats'],
17
- 7: [
18
- 'format/idn-email',
19
- 'format/idn-hostname',
20
- 'format/iri',
21
- 'format/iri-reference',
22
- 'optional/content'
23
- ]
24
- };
25
-
26
- [4, 6, 7].forEach((draft) => {
27
- let ajv;
28
- if (draft == 7) {
29
- ajv = new Ajv({format: 'full'});
30
- } else {
31
- const schemaId = draft == 4 ? 'id' : '$id';
32
- ajv = new Ajv({format: 'full', meta: false, schemaId});
33
- ajv.addMetaSchema(require(`ajv/lib/refs/json-schema-draft-0${draft}.json`));
34
- ajv._opts.defaultMeta = `http://json-schema.org/draft-0${draft}/schema#`;
35
- }
36
- for (const uri in refs) ajv.addSchema(refs[uri], uri);
37
-
38
- jsonSchemaTest(ajv, {
39
- description: `Test suite draft-0${draft}`,
40
- suites: {tests: `./tests/draft${draft}/{**/,}*.json`},
41
- skip: SKIP[draft],
42
- cwd: __dirname,
43
- hideFolder: 'tests/'
44
- });
45
- });
@@ -1,28 +0,0 @@
1
- {
2
- "name": "json-schema-test-suite",
3
- "version": "0.1.0",
4
- "description": "A language agnostic test suite for the JSON Schema specifications",
5
- "main": "index.js",
6
- "scripts": {
7
- "test": "mocha index.js -R spec"
8
- },
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/json-schema-org/JSON-Schema-Test-Suite.git"
12
- },
13
- "keywords": [
14
- "json-schema",
15
- "tests"
16
- ],
17
- "author": "http://json-schema.org",
18
- "license": "MIT",
19
- "bugs": {
20
- "url": "https://github.com/json-schema-org/JSON-Schema-Test-Suite/issues"
21
- },
22
- "homepage": "https://github.com/json-schema-org/JSON-Schema-Test-Suite#readme",
23
- "devDependencies": {
24
- "ajv": "^6.0.0-rc.1",
25
- "json-schema-test": "^2.0.0",
26
- "mocha": "^3.2.0"
27
- }
28
- }
@@ -1,3 +0,0 @@
1
- {
2
- "type": "integer"
3
- }
@@ -1,3 +0,0 @@
1
- {
2
- "type": "integer"
3
- }
@@ -1,15 +0,0 @@
1
- {
2
- "$defs": {
3
- "orNull": {
4
- "anyOf": [
5
- {
6
- "type": "null"
7
- },
8
- {
9
- "$ref": "#"
10
- }
11
- ]
12
- }
13
- },
14
- "type": "string"
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- "definitions": {
3
- "orNull": {
4
- "anyOf": [
5
- {
6
- "type": "null"
7
- },
8
- {
9
- "$ref": "#"
10
- }
11
- ]
12
- }
13
- },
14
- "type": "string"
15
- }
@@ -1,8 +0,0 @@
1
- {
2
- "integer": {
3
- "type": "integer"
4
- },
5
- "refToInteger": {
6
- "$ref": "#/integer"
7
- }
8
- }
@@ -1,59 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-04/schema#",
3
- "definitions": {
4
- "outputItem": {
5
- "type": "object",
6
- "properties": {
7
- "valid": {"type": "boolean"},
8
- "keywordLocation": {"type": "string"},
9
- "absoluteKeywordLocation": {
10
- "type": "string",
11
- "format": "uri"
12
- },
13
- "instanceLocation": {"type": "string"},
14
- "annotations": {
15
- "type": "array",
16
- "items": {"$ref": "#/definitions/outputItem"}
17
- },
18
- "errors": {
19
- "type": "array",
20
- "items": {"$ref": "#/definitions/outputItem"}
21
- }
22
- }
23
- }
24
- },
25
- "type": "array",
26
- "items": {
27
- "type": "object",
28
- "required": ["description", "schema", "tests"],
29
- "properties": {
30
- "description": {"type": "string"},
31
- "schema": {},
32
- "tests": {
33
- "type": "array",
34
- "items": {
35
- "type": "object",
36
- "required": ["description", "data", "valid"],
37
- "properties": {
38
- "description": {"type": "string"},
39
- "data": {},
40
- "valid": {"type": "boolean"},
41
- "output": {
42
- "type": "object",
43
- "properties": {
44
- "basic": {"$ref": "#/definitions/outputItem"},
45
- "detailed": {"$ref": "#/definitions/outputItem"},
46
- "verbose": {"$ref": "#/definitions/outputItem"}
47
- },
48
- "required": ["basic", "detailed", "verbose"]
49
- }
50
- },
51
- "additionalProperties": false
52
- },
53
- "minItems": 1
54
- }
55
- },
56
- "additionalProperties": false,
57
- "minItems": 1
58
- }
59
- }
@@ -1,87 +0,0 @@
1
- [
2
- {
3
- "description": "additionalItems as schema",
4
- "schema": {
5
- "items": [{}],
6
- "additionalItems": {"type": "integer"}
7
- },
8
- "tests": [
9
- {
10
- "description": "additional items match schema",
11
- "data": [ null, 2, 3, 4 ],
12
- "valid": true
13
- },
14
- {
15
- "description": "additional items do not match schema",
16
- "data": [ null, 2, 3, "foo" ],
17
- "valid": false
18
- }
19
- ]
20
- },
21
- {
22
- "description": "items is schema, no additionalItems",
23
- "schema": {
24
- "items": {},
25
- "additionalItems": false
26
- },
27
- "tests": [
28
- {
29
- "description": "all items match schema",
30
- "data": [ 1, 2, 3, 4, 5 ],
31
- "valid": true
32
- }
33
- ]
34
- },
35
- {
36
- "description": "array of items with no additionalItems",
37
- "schema": {
38
- "items": [{}, {}, {}],
39
- "additionalItems": false
40
- },
41
- "tests": [
42
- {
43
- "description": "fewer number of items present",
44
- "data": [ 1, 2 ],
45
- "valid": true
46
- },
47
- {
48
- "description": "equal number of items present",
49
- "data": [ 1, 2, 3 ],
50
- "valid": true
51
- },
52
- {
53
- "description": "additional items are not permitted",
54
- "data": [ 1, 2, 3, 4 ],
55
- "valid": false
56
- }
57
- ]
58
- },
59
- {
60
- "description": "additionalItems as false without items",
61
- "schema": {"additionalItems": false},
62
- "tests": [
63
- {
64
- "description":
65
- "items defaults to empty schema so everything is valid",
66
- "data": [ 1, 2, 3, 4, 5 ],
67
- "valid": true
68
- },
69
- {
70
- "description": "ignores non-arrays",
71
- "data": {"foo" : "bar"},
72
- "valid": true
73
- }
74
- ]
75
- },
76
- {
77
- "description": "additionalItems are allowed by default",
78
- "schema": {"items": [{"type": "integer"}]},
79
- "tests": [
80
- {
81
- "description": "only the first item is validated",
82
- "data": [1, "foo", false],
83
- "valid": true
84
- }
85
- ]
86
- }
87
- ]
@@ -1,133 +0,0 @@
1
- [
2
- {
3
- "description":
4
- "additionalProperties being false does not allow other properties",
5
- "schema": {
6
- "properties": {"foo": {}, "bar": {}},
7
- "patternProperties": { "^v": {} },
8
- "additionalProperties": false
9
- },
10
- "tests": [
11
- {
12
- "description": "no additional properties is valid",
13
- "data": {"foo": 1},
14
- "valid": true
15
- },
16
- {
17
- "description": "an additional property is invalid",
18
- "data": {"foo" : 1, "bar" : 2, "quux" : "boom"},
19
- "valid": false
20
- },
21
- {
22
- "description": "ignores arrays",
23
- "data": [1, 2, 3],
24
- "valid": true
25
- },
26
- {
27
- "description": "ignores strings",
28
- "data": "foobarbaz",
29
- "valid": true
30
- },
31
- {
32
- "description": "ignores other non-objects",
33
- "data": 12,
34
- "valid": true
35
- },
36
- {
37
- "description": "patternProperties are not additional properties",
38
- "data": {"foo":1, "vroom": 2},
39
- "valid": true
40
- }
41
- ]
42
- },
43
- {
44
- "description": "non-ASCII pattern with additionalProperties",
45
- "schema": {
46
- "patternProperties": {"^á": {}},
47
- "additionalProperties": false
48
- },
49
- "tests": [
50
- {
51
- "description": "matching the pattern is valid",
52
- "data": {"ármányos": 2},
53
- "valid": true
54
- },
55
- {
56
- "description": "not matching the pattern is invalid",
57
- "data": {"élmény": 2},
58
- "valid": false
59
- }
60
- ]
61
- },
62
- {
63
- "description":
64
- "additionalProperties allows a schema which should validate",
65
- "schema": {
66
- "properties": {"foo": {}, "bar": {}},
67
- "additionalProperties": {"type": "boolean"}
68
- },
69
- "tests": [
70
- {
71
- "description": "no additional properties is valid",
72
- "data": {"foo": 1},
73
- "valid": true
74
- },
75
- {
76
- "description": "an additional valid property is valid",
77
- "data": {"foo" : 1, "bar" : 2, "quux" : true},
78
- "valid": true
79
- },
80
- {
81
- "description": "an additional invalid property is invalid",
82
- "data": {"foo" : 1, "bar" : 2, "quux" : 12},
83
- "valid": false
84
- }
85
- ]
86
- },
87
- {
88
- "description":
89
- "additionalProperties can exist by itself",
90
- "schema": {
91
- "additionalProperties": {"type": "boolean"}
92
- },
93
- "tests": [
94
- {
95
- "description": "an additional valid property is valid",
96
- "data": {"foo" : true},
97
- "valid": true
98
- },
99
- {
100
- "description": "an additional invalid property is invalid",
101
- "data": {"foo" : 1},
102
- "valid": false
103
- }
104
- ]
105
- },
106
- {
107
- "description": "additionalProperties are allowed by default",
108
- "schema": {"properties": {"foo": {}, "bar": {}}},
109
- "tests": [
110
- {
111
- "description": "additional properties are allowed",
112
- "data": {"foo": 1, "bar": 2, "quux": true},
113
- "valid": true
114
- }
115
- ]
116
- },
117
- {
118
- "description": "additionalProperties should not look in applicators",
119
- "schema": {
120
- "allOf": [
121
- {"properties": {"foo": {}}}
122
- ],
123
- "additionalProperties": {"type": "boolean"}
124
- },
125
- "tests": [
126
- {
127
- "description": "properties defined in allOf are not allowed",
128
- "data": {"foo": 1, "bar": true},
129
- "valid": false
130
- }
131
- ]
132
- }
133
- ]
@@ -1,218 +0,0 @@
1
- [
2
- {
3
- "description": "allOf",
4
- "schema": {
5
- "allOf": [
6
- {
7
- "properties": {
8
- "bar": {"type": "integer"}
9
- },
10
- "required": ["bar"]
11
- },
12
- {
13
- "properties": {
14
- "foo": {"type": "string"}
15
- },
16
- "required": ["foo"]
17
- }
18
- ]
19
- },
20
- "tests": [
21
- {
22
- "description": "allOf",
23
- "data": {"foo": "baz", "bar": 2},
24
- "valid": true
25
- },
26
- {
27
- "description": "mismatch second",
28
- "data": {"foo": "baz"},
29
- "valid": false
30
- },
31
- {
32
- "description": "mismatch first",
33
- "data": {"bar": 2},
34
- "valid": false
35
- },
36
- {
37
- "description": "wrong type",
38
- "data": {"foo": "baz", "bar": "quux"},
39
- "valid": false
40
- }
41
- ]
42
- },
43
- {
44
- "description": "allOf with base schema",
45
- "schema": {
46
- "properties": {"bar": {"type": "integer"}},
47
- "required": ["bar"],
48
- "allOf" : [
49
- {
50
- "properties": {
51
- "foo": {"type": "string"}
52
- },
53
- "required": ["foo"]
54
- },
55
- {
56
- "properties": {
57
- "baz": {"type": "null"}
58
- },
59
- "required": ["baz"]
60
- }
61
- ]
62
- },
63
- "tests": [
64
- {
65
- "description": "valid",
66
- "data": {"foo": "quux", "bar": 2, "baz": null},
67
- "valid": true
68
- },
69
- {
70
- "description": "mismatch base schema",
71
- "data": {"foo": "quux", "baz": null},
72
- "valid": false
73
- },
74
- {
75
- "description": "mismatch first allOf",
76
- "data": {"bar": 2, "baz": null},
77
- "valid": false
78
- },
79
- {
80
- "description": "mismatch second allOf",
81
- "data": {"foo": "quux", "bar": 2},
82
- "valid": false
83
- },
84
- {
85
- "description": "mismatch both",
86
- "data": {"bar": 2},
87
- "valid": false
88
- }
89
- ]
90
- },
91
- {
92
- "description": "allOf simple types",
93
- "schema": {
94
- "allOf": [
95
- {"maximum": 30},
96
- {"minimum": 20}
97
- ]
98
- },
99
- "tests": [
100
- {
101
- "description": "valid",
102
- "data": 25,
103
- "valid": true
104
- },
105
- {
106
- "description": "mismatch one",
107
- "data": 35,
108
- "valid": false
109
- }
110
- ]
111
- },
112
- {
113
- "description": "allOf with boolean schemas, all true",
114
- "schema": {"allOf": [true, true]},
115
- "tests": [
116
- {
117
- "description": "any value is valid",
118
- "data": "foo",
119
- "valid": true
120
- }
121
- ]
122
- },
123
- {
124
- "description": "allOf with boolean schemas, some false",
125
- "schema": {"allOf": [true, false]},
126
- "tests": [
127
- {
128
- "description": "any value is invalid",
129
- "data": "foo",
130
- "valid": false
131
- }
132
- ]
133
- },
134
- {
135
- "description": "allOf with boolean schemas, all false",
136
- "schema": {"allOf": [false, false]},
137
- "tests": [
138
- {
139
- "description": "any value is invalid",
140
- "data": "foo",
141
- "valid": false
142
- }
143
- ]
144
- },
145
- {
146
- "description": "allOf with one empty schema",
147
- "schema": {
148
- "allOf": [
149
- {}
150
- ]
151
- },
152
- "tests": [
153
- {
154
- "description": "any data is valid",
155
- "data": 1,
156
- "valid": true
157
- }
158
- ]
159
- },
160
- {
161
- "description": "allOf with two empty schemas",
162
- "schema": {
163
- "allOf": [
164
- {},
165
- {}
166
- ]
167
- },
168
- "tests": [
169
- {
170
- "description": "any data is valid",
171
- "data": 1,
172
- "valid": true
173
- }
174
- ]
175
- },
176
- {
177
- "description": "allOf with the first empty schema",
178
- "schema": {
179
- "allOf": [
180
- {},
181
- { "type": "number" }
182
- ]
183
- },
184
- "tests": [
185
- {
186
- "description": "number is valid",
187
- "data": 1,
188
- "valid": true
189
- },
190
- {
191
- "description": "string is invalid",
192
- "data": "foo",
193
- "valid": false
194
- }
195
- ]
196
- },
197
- {
198
- "description": "allOf with the last empty schema",
199
- "schema": {
200
- "allOf": [
201
- { "type": "number" },
202
- {}
203
- ]
204
- },
205
- "tests": [
206
- {
207
- "description": "number is valid",
208
- "data": 1,
209
- "valid": true
210
- },
211
- {
212
- "description": "string is invalid",
213
- "data": "foo",
214
- "valid": false
215
- }
216
- ]
217
- }
218
- ]