|
1 | 1 | import ajvErrors from ".." |
2 | 2 | import Ajv, {SchemaObject, ErrorObject, ValidateFunction} from "ajv" |
| 3 | +import AjvPack from "ajv/dist/standalone/instance" |
3 | 4 | import assert = require("assert") |
4 | 5 |
|
| 6 | +function _ajv(verbose?: boolean): Ajv { |
| 7 | + return ajvErrors(new Ajv({allErrors: true, verbose, code: {source: true}})) |
| 8 | +} |
| 9 | + |
5 | 10 | describe("errorMessage value is an object", () => { |
6 | | - let ajvs: Ajv[] |
| 11 | + let ajvs: (Ajv | AjvPack)[] |
7 | 12 |
|
8 | 13 | beforeEach(() => { |
9 | | - ajvs = [ |
10 | | - ajvErrors(new Ajv({allErrors: true})), |
11 | | - ajvErrors(new Ajv({allErrors: true, verbose: true})), |
12 | | - ] |
| 14 | + ajvs = [_ajv(), _ajv(true), new AjvPack(_ajv()), new AjvPack(_ajv(true))] |
13 | 15 | }) |
14 | 16 |
|
15 | 17 | describe("keywords", () => { |
@@ -50,7 +52,10 @@ describe("errorMessage value is an object", () => { |
50 | 52 | assert.strictEqual(err.dataPath, "") |
51 | 53 | assert.strictEqual(err.schemaPath, "#/errorMessage") |
52 | 54 | const replacedKeywords = err.params.errors.map((e: ErrorObject) => e.keyword) |
53 | | - assert.deepStrictEqual(replacedKeywords.sort(), expectedErr.sort()) |
| 55 | + assert.deepStrictEqual( |
| 56 | + Array.from(replacedKeywords.sort()), |
| 57 | + Array.from(expectedErr.sort()) |
| 58 | + ) |
54 | 59 | } else { |
55 | 60 | // original error |
56 | 61 | assert.strictEqual(err.keyword, expectedErr) |
@@ -134,7 +139,10 @@ describe("errorMessage value is an object", () => { |
134 | 139 | assert.strictEqual(err.dataPath, "/foo") |
135 | 140 | assert.strictEqual(err.schemaPath, "#/properties/foo/errorMessage") |
136 | 141 | const replacedKeywords = err.params.errors.map((e: ErrorObject) => e.keyword) |
137 | | - assert.deepStrictEqual(replacedKeywords.sort(), expectedErr.sort()) |
| 142 | + assert.deepStrictEqual( |
| 143 | + Array.from(replacedKeywords.sort()), |
| 144 | + Array.from(expectedErr.sort()) |
| 145 | + ) |
138 | 146 | } else { |
139 | 147 | // original error |
140 | 148 | assert.strictEqual(err.keyword, expectedErr) |
@@ -281,7 +289,10 @@ describe("errorMessage value is an object", () => { |
281 | 289 | assert.strictEqual(err.dataPath, "") |
282 | 290 | assert.strictEqual(err.schemaPath, "#/errorMessage") |
283 | 291 | const replacedKeywords = err.params.errors.map((e: ErrorObject) => e.keyword) |
284 | | - assert.deepStrictEqual(replacedKeywords, Object.keys(expectedErr)) |
| 292 | + assert.deepStrictEqual( |
| 293 | + Array.from(replacedKeywords), |
| 294 | + Array.from(Object.keys(expectedErr)) |
| 295 | + ) |
285 | 296 | } else { |
286 | 297 | // original error |
287 | 298 | assert.strictEqual(err.keyword, expectedErr) |
@@ -570,7 +581,10 @@ describe("errorMessage value is an object", () => { |
570 | 581 | assert((Array.isArray(data) ? /^\/(0|1)$/ : /^\/(foo|bar)$/).test(err.dataPath)) |
571 | 582 | assert.strictEqual(err.schemaPath, "#/errorMessage") |
572 | 583 | const replacedKeywords = err.params.errors.map((e: ErrorObject) => e.keyword) |
573 | | - assert.deepStrictEqual(replacedKeywords.sort(), expectedErr.sort()) |
| 584 | + assert.deepStrictEqual( |
| 585 | + Array.from(replacedKeywords.sort()), |
| 586 | + Array.from(expectedErr.sort()) |
| 587 | + ) |
574 | 588 | } else { |
575 | 589 | // original error |
576 | 590 | assert.strictEqual(err.keyword, expectedErr) |
@@ -620,7 +634,10 @@ describe("errorMessage value is an object", () => { |
620 | 634 | : schema.errorMessage[expectedErr[0] === "required" ? "required" : "_"] |
621 | 635 | assert.strictEqual(err.message, expectedMessage) |
622 | 636 | const replacedKeywords = err.params.errors.map((e: ErrorObject) => e.keyword) |
623 | | - assert.deepStrictEqual(replacedKeywords.sort(), expectedErr.sort()) |
| 637 | + assert.deepStrictEqual( |
| 638 | + Array.from(replacedKeywords.sort()), |
| 639 | + Array.from(expectedErr.sort()) |
| 640 | + ) |
624 | 641 | } else { |
625 | 642 | // original error |
626 | 643 | assert.strictEqual(err.keyword, expectedErr) |
|
0 commit comments