json_schemer 0.2.9 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
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
- ]