import { assertEquals, assertNotEquals, } from "https://deno.land/std@0.53.0/testing/asserts.ts"; import { validate, Validatable, ArraySymbol, isString, isNumber, isInteger, } from "./mod.ts"; Deno.test("validate schema (match)", async () => { const values: [any, Validatable][] = [ ["string", isString], ["string", [isString]], [["arr", "ay"], { [ArraySymbol]: isString }], [{ foo: 3.1415, lorem: "ipsum" }, { foo: isNumber, 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: 3.1415, lorem: "ipsum" }, { foo: isInteger, lorem: [isString] }], ]; for (const [value, constraints] of values) { assertNotEquals([], await validate(value, constraints)); } });