Added conversion

This commit is contained in:
Sebastian Seedorf
2020-05-28 00:52:52 +02:00
parent 741b96ee50
commit 1ddb84234e
5 changed files with 161 additions and 21 deletions

View File

@@ -52,7 +52,10 @@ Deno.test("validate schema (match)", async () => {
],
];
for (const [value, constraints] of values) {
const valueBefore = JSON.stringify(value);
assertEquals(await validate(value, constraints), [], String(value));
const valueAfter = JSON.stringify(value);
assertEquals(valueAfter, valueBefore);
}
});
@@ -92,6 +95,71 @@ Deno.test("validate schema (no match)", async () => {
],
];
for (const [value, constraints] of values) {
const valueBefore = JSON.stringify(value);
assertNotEquals(await validate(value, constraints), [], String(value));
const valueAfter = JSON.stringify(value);
assertEquals(valueAfter, valueBefore);
}
});
Deno.test("validate doConversion (match)", async () => {
const values: [any, Validatable, any][] = [
[
1,
isNumber(),
1
],
[
"2",
isNumber(),
2
],
[
"03",
isNumber(),
3
],
[
{ foo: 3, bar: { baz: "4", other: "val" } },
{ foo: isNumber(), bar: { baz: isNumber() } },
{ foo: 3, bar: { baz: 4 } }
],
];
for (const [value, constraints, conv] of values) {
const valueBefore = JSON.stringify(value);
const converted: any = {};
assertEquals(await validate(value, constraints, {doConversion: true, converted}), [], String(value));
const valueAfter = JSON.stringify(value);
assertEquals(valueAfter, valueBefore);
assertEquals(converted.hasOwnProperty("output"), true);
assertEquals(converted?.output, conv);
}
});
Deno.test("validate doConversion (no match)", async () => {
const values: [any, Validatable][] = [
[
"1x",
isNumber(),
],
[
Symbol(),
isNumber(),
],
];
for (const [value, constraints] of values) {
const valueBefore = JSON.stringify(value);
const converted: any = {};
assertNotEquals(await validate(value, constraints, {doConversion: true, converted}), [], String(value));
const valueAfter = JSON.stringify(value);
assertEquals(valueAfter, valueBefore);
assertEquals(converted.hasOwnProperty("output"), true);
assertEquals(converted?.output, value);
}
});