100 lines
1.8 KiB
TypeScript
100 lines
1.8 KiB
TypeScript
import { isRequired, isDefined, isNotEmpty } from "./empty.ts";
|
|
import { validate } from "../mod.ts";
|
|
import {
|
|
assertEquals,
|
|
assertNotEquals,
|
|
} from "https://deno.land/std@0.53.0/testing/asserts.ts";
|
|
|
|
Deno.test("isRequired (match)", async () => {
|
|
const values = [
|
|
"",
|
|
" ",
|
|
"foo",
|
|
0,
|
|
1,
|
|
true,
|
|
false,
|
|
NaN,
|
|
{},
|
|
{ foo: "bar" },
|
|
[],
|
|
["foo"],
|
|
Symbol("foo"),
|
|
];
|
|
for (const value of values) {
|
|
assertEquals(await validate(value, isRequired()), []);
|
|
}
|
|
});
|
|
|
|
Deno.test("isRequired (no match)", async () => {
|
|
const values: (undefined|null)[] = [
|
|
undefined,
|
|
null,
|
|
];
|
|
for (const value of values) {
|
|
assertNotEquals(await validate(value, isRequired()), []);
|
|
}
|
|
});
|
|
|
|
Deno.test("isDefined (match)", async () => {
|
|
const values = [
|
|
null,
|
|
"",
|
|
" ",
|
|
"foo",
|
|
0,
|
|
1,
|
|
true,
|
|
false,
|
|
NaN,
|
|
{},
|
|
{ foo: "bar" },
|
|
[],
|
|
["foo"],
|
|
Symbol("foo"),
|
|
];
|
|
for (const value of values) {
|
|
assertEquals(await validate(value, isDefined()), []);
|
|
}
|
|
});
|
|
|
|
Deno.test("isDefined (no match)", async () => {
|
|
const values: undefined[] = [
|
|
undefined,
|
|
];
|
|
for (const value of values) {
|
|
assertNotEquals(await validate(value, isDefined()), []);
|
|
}
|
|
});
|
|
|
|
Deno.test("isNotEmpty (match)", async () => {
|
|
const values = [
|
|
"foo",
|
|
0,
|
|
1,
|
|
true,
|
|
false,
|
|
NaN,
|
|
{ foo: "bar" },
|
|
["foo"],
|
|
Symbol("foo"),
|
|
];
|
|
for (const value of values) {
|
|
assertEquals(await validate(value, isNotEmpty()), [], String(value));
|
|
}
|
|
});
|
|
|
|
Deno.test("isNotEmpty (no match)", async () => {
|
|
const values = [
|
|
undefined,
|
|
null,
|
|
"",
|
|
" ",
|
|
{},
|
|
[],
|
|
];
|
|
for (const value of values) {
|
|
assertNotEquals(await validate(value, isNotEmpty()), [], String(value));
|
|
}
|
|
});
|