32 lines
848 B
TypeScript
32 lines
848 B
TypeScript
import { or } from "./logic.ts";
|
|
import { validate, Validator, isString, isInteger } from "../mod.ts";
|
|
import {
|
|
assertEquals,
|
|
assertNotEquals,
|
|
} from "https://deno.land/std@0.53.0/testing/asserts.ts";
|
|
|
|
Deno.test("or (match)", async () => {
|
|
const values: [any, Validator[]][] = [
|
|
["", [isString(), isInteger()]],
|
|
[1, [isString(), isInteger()]],
|
|
];
|
|
for (const [value, validators] of values) {
|
|
assertEquals(await validate(value, or(...validators)), [], String(value));
|
|
}
|
|
});
|
|
|
|
Deno.test("or (no match)", async () => {
|
|
const values: [any, Validator[]][] = [
|
|
[true, [isString(), isInteger()]],
|
|
[3.1415, [isString(), isInteger()]],
|
|
[1, [isString()]],
|
|
];
|
|
for (const [value, validators] of values) {
|
|
assertNotEquals(
|
|
await validate(value, or(...validators)),
|
|
[],
|
|
String(value),
|
|
);
|
|
}
|
|
});
|