functional/typing.test.ts

38 lines
984 B
TypeScript
Raw Normal View History

2020-05-13 09:46:10 +00:00
import { expect, test } from "./deps.test.ts";
2020-05-11 22:34:57 +00:00
import { isinstance, nn, nnu, nu } from "./typing.ts";
2020-05-13 09:46:10 +00:00
test("isinstance", () => {
2020-05-11 22:34:57 +00:00
class A {}
class A1 extends A {}
class A2 extends A {}
class B {}
const f: any[] = [5, null, undefined, new A(), new A1(), new B(), new A2()];
const result = f.filter(isinstance(A));
2020-05-13 09:46:10 +00:00
expect(result).toEqual([f[3], f[4], f[6]]);
2020-05-11 22:34:57 +00:00
});
2020-05-13 09:46:10 +00:00
test("nn", () => {
expect(nn(undefined)).toBeUndefined();
expect(nn(0)).toBe(0);
expect(nn("")).toBe("");
expect(nn([])).toEqual([]);
expect(() => nn(null)).toThrow("null value");
2020-05-11 22:34:57 +00:00
});
2020-05-13 09:46:10 +00:00
test("nu", () => {
expect(nu(null)).toBe(null);
expect(nu(0)).toBe(0);
expect(nu("")).toBe("");
expect(nu([])).toEqual([]);
expect(() => nu(undefined)).toThrow("undefined value");
2020-05-11 22:34:57 +00:00
});
2020-05-13 09:46:10 +00:00
test("nnu", () => {
expect(nnu(0)).toBe(0);
expect(nnu("")).toBe("");
expect(nnu([])).toEqual([]);
expect(() => nnu(undefined)).toThrow("undefined value");
expect(() => nnu(null)).toThrow("null value");
2020-05-11 22:34:57 +00:00
});