35 lines
961 B
TypeScript
35 lines
961 B
TypeScript
import {
|
|
assertEquals,
|
|
assertNotEquals,
|
|
} from "https://deno.land/std@0.53.0/testing/asserts.ts";
|
|
import {
|
|
validate,
|
|
Validatable,
|
|
ArraySymbol,
|
|
isString,
|
|
} from "./mod.ts";
|
|
|
|
Deno.test("validate schema (match)", async () => {
|
|
const values: [any, Validatable][] = [
|
|
["string", isString],
|
|
["string", [isString]],
|
|
[["arr", "ay"], { [ArraySymbol]: isString }],
|
|
[{ foo: "bar", lorem: "ipsum" }, { foo: isString, lorem: [isString] }],
|
|
];
|
|
for (const [value, constraints] of values) {
|
|
assertEquals([], await validate(value, constraints));
|
|
}
|
|
});
|
|
|
|
Deno.test("validate schema (no match)", async () => {
|
|
const values: [any, Validatable][] = [
|
|
[6, isString],
|
|
[false, [isString]],
|
|
[["arr", ["ay"]], { [ArraySymbol]: isString }],
|
|
[{ foo: {}, lorem: "ipsum" }, { foo: isString, lorem: [isString] }],
|
|
];
|
|
for (const [value, constraints] of values) {
|
|
assertNotEquals([], await validate(value, constraints));
|
|
}
|
|
});
|