This commit is contained in:
Sebastian Seedorf
2020-05-26 00:20:44 +02:00
parent cd6ed23d47
commit 218e596ede
5 changed files with 72 additions and 39 deletions

View File

@@ -1,13 +1,16 @@
import { isString } from "./string.ts";
import { validate } from "../mod.ts";
import { assertEquals, assertNotEquals } from "https://deno.land/std@0.53.0/testing/asserts.ts";
import {
assertEquals,
assertNotEquals,
} from "https://deno.land/std@0.53.0/testing/asserts.ts";
Deno.test("isString (match)", async () => {
const values = [
"",
"foo",
new String(),
new String("bar")
new String("bar"),
];
for (const value of values) {
assertEquals([], await validate(value, isString));
@@ -25,9 +28,9 @@ Deno.test("isString (no match)", async () => {
() => {},
function named() {},
new Object(),
Symbol()
Symbol(),
];
for (const value of values) {
assertNotEquals([], await validate(value, isString));
}
});
});

View File

@@ -3,11 +3,11 @@ import { Validator, Args } from "../mod.ts";
export const isString: Validator = {
type: "isString",
check: (value: any) => {
if (typeof value !== 'string' && !(value instanceof String)) {
if (typeof value !== "string" && !(value instanceof String)) {
return {};
}
},
message: (value: any, args?: Args) => {
return `The value '${value && value.toString()}' has to be a string.`
}
}
return `The value '${value && value.toString()}' has to be a string.`;
},
};