104 lines
2.9 KiB
TypeScript
104 lines
2.9 KiB
TypeScript
import { assertDefined, assertDefinedAndNotNull } from "./assert";
|
|
|
|
describe("assert", () => {
|
|
describe("assertDefined", () => {
|
|
it("passes for simple values", () => {
|
|
{
|
|
const value: number | undefined = 123;
|
|
assertDefined(value);
|
|
expect(value).toEqual(123);
|
|
}
|
|
{
|
|
const value: string | undefined = "abc";
|
|
assertDefined(value);
|
|
expect(value).toEqual("abc");
|
|
}
|
|
});
|
|
|
|
it("passes for falsy values", () => {
|
|
{
|
|
const value: number | undefined = 0;
|
|
assertDefined(value);
|
|
expect(value).toEqual(0);
|
|
}
|
|
{
|
|
const value: string | undefined = "";
|
|
assertDefined(value);
|
|
expect(value).toEqual("");
|
|
}
|
|
{
|
|
const value: null | undefined = null;
|
|
assertDefined(value);
|
|
expect(value).toBeNull();
|
|
}
|
|
});
|
|
|
|
it("throws for undefined values", () => {
|
|
{
|
|
const value: number | undefined = undefined;
|
|
expect(() => assertDefined(value)).toThrowError("value is undefined");
|
|
}
|
|
{
|
|
let value: string | undefined;
|
|
expect(() => assertDefined(value)).toThrowError("value is undefined");
|
|
}
|
|
});
|
|
|
|
it("throws with custom message", () => {
|
|
const value: number | undefined = undefined;
|
|
expect(() => assertDefined(value, "Bug in the data source")).toThrowError("Bug in the data source");
|
|
});
|
|
});
|
|
|
|
describe("assertDefinedAndNotNull", () => {
|
|
it("passes for simple values", () => {
|
|
{
|
|
const value: number | undefined | null = 123;
|
|
assertDefinedAndNotNull(value);
|
|
expect(value).toEqual(123);
|
|
}
|
|
{
|
|
const value: string | undefined | null = "abc";
|
|
assertDefinedAndNotNull(value);
|
|
expect(value).toEqual("abc");
|
|
}
|
|
});
|
|
|
|
it("passes for falsy values", () => {
|
|
{
|
|
const value: number | undefined | null = 0;
|
|
assertDefinedAndNotNull(value);
|
|
expect(value).toEqual(0);
|
|
}
|
|
{
|
|
const value: string | undefined | null = "";
|
|
assertDefinedAndNotNull(value);
|
|
expect(value).toEqual("");
|
|
}
|
|
});
|
|
|
|
it("throws for undefined values", () => {
|
|
{
|
|
const value: number | undefined | null = undefined;
|
|
expect(() => assertDefinedAndNotNull(value)).toThrowError("value is undefined or null");
|
|
}
|
|
{
|
|
let value: string | undefined | null;
|
|
expect(() => assertDefinedAndNotNull(value)).toThrowError("value is undefined or null");
|
|
}
|
|
});
|
|
|
|
it("throws for null values", () => {
|
|
const value: number | undefined | null = null;
|
|
expect(() => assertDefinedAndNotNull(value)).toThrowError("value is undefined or null");
|
|
});
|
|
|
|
it("throws with custom message", () => {
|
|
const value: number | undefined = undefined;
|
|
expect(() => assertDefinedAndNotNull(value, "Bug in the data source")).toThrowError(
|
|
"Bug in the data source",
|
|
);
|
|
});
|
|
});
|
|
});
|