mirror of
https://github.com/cosmos/cosmjs.git
synced 2025-03-10 21:49:15 +00:00
utils: Replace assertDefined with assertDefinedAndNotNull
This commit is contained in:
parent
9e2f2d3168
commit
76a3f55350
@ -1,52 +1,54 @@
|
||||
import { assertDefined } from "./assert";
|
||||
import { assertDefinedAndNotNull } from "./assert";
|
||||
|
||||
describe("assert", () => {
|
||||
describe("assertDefined", () => {
|
||||
describe("assertDefinedAndNotNull", () => {
|
||||
it("passes for simple values", () => {
|
||||
{
|
||||
const value: number | undefined = 123;
|
||||
assertDefined(value);
|
||||
const value: number | undefined | null = 123;
|
||||
assertDefinedAndNotNull(value);
|
||||
expect(value).toEqual(123);
|
||||
}
|
||||
{
|
||||
const value: string | undefined = "abc";
|
||||
assertDefined(value);
|
||||
const value: string | undefined | null = "abc";
|
||||
assertDefinedAndNotNull(value);
|
||||
expect(value).toEqual("abc");
|
||||
}
|
||||
});
|
||||
|
||||
it("passes for falsy values", () => {
|
||||
{
|
||||
const value: number | undefined = 0;
|
||||
assertDefined(value);
|
||||
const value: number | undefined | null = 0;
|
||||
assertDefinedAndNotNull(value);
|
||||
expect(value).toEqual(0);
|
||||
}
|
||||
{
|
||||
const value: string | undefined = "";
|
||||
assertDefined(value);
|
||||
const value: string | undefined | null = "";
|
||||
assertDefinedAndNotNull(value);
|
||||
expect(value).toEqual("");
|
||||
}
|
||||
{
|
||||
const value: null | undefined = null;
|
||||
assertDefined(value);
|
||||
expect(value).toEqual(null);
|
||||
}
|
||||
});
|
||||
|
||||
it("throws for undefined values", () => {
|
||||
{
|
||||
const value: number | undefined = undefined;
|
||||
expect(() => assertDefined(value)).toThrowError("value is undefined");
|
||||
const value: number | undefined | null = undefined;
|
||||
expect(() => assertDefinedAndNotNull(value)).toThrowError("value is undefined or null");
|
||||
}
|
||||
{
|
||||
let value: string | undefined;
|
||||
expect(() => assertDefined(value)).toThrowError("value is undefined");
|
||||
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(() => assertDefined(value, "Bug in the data source")).toThrowError("Bug in the data source");
|
||||
expect(() => assertDefinedAndNotNull(value, "Bug in the data source")).toThrowError(
|
||||
"Bug in the data source",
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -5,8 +5,8 @@ export function assert(condition: any, msg?: string): asserts condition {
|
||||
}
|
||||
}
|
||||
|
||||
export function assertDefined<T>(value: T | undefined, msg?: string): asserts value is T {
|
||||
if (value === undefined) {
|
||||
throw new Error(msg || "value is undefined");
|
||||
export function assertDefinedAndNotNull<T>(value: T | undefined | null, msg?: string): asserts value is T {
|
||||
if (value === undefined || value === null) {
|
||||
throw new Error(msg ?? "value is undefined or null");
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
export { arrayContentEquals } from "./arrays";
|
||||
export { assert, assertDefined } from "./assert";
|
||||
export { assert, assertDefinedAndNotNull } from "./assert";
|
||||
export { sleep } from "./sleep";
|
||||
export { isNonNullObject, isUint8Array } from "./typechecks";
|
||||
|
5
packages/utils/types/assert.d.ts
vendored
5
packages/utils/types/assert.d.ts
vendored
@ -1,2 +1,5 @@
|
||||
export declare function assert(condition: any, msg?: string): asserts condition;
|
||||
export declare function assertDefined<T>(value: T | undefined, msg?: string): asserts value is T;
|
||||
export declare function assertDefinedAndNotNull<T>(
|
||||
value: T | undefined | null,
|
||||
msg?: string,
|
||||
): asserts value is T;
|
||||
|
2
packages/utils/types/index.d.ts
vendored
2
packages/utils/types/index.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
export { arrayContentEquals } from "./arrays";
|
||||
export { assert, assertDefined } from "./assert";
|
||||
export { assert, assertDefinedAndNotNull } from "./assert";
|
||||
export { sleep } from "./sleep";
|
||||
export { isNonNullObject, isUint8Array } from "./typechecks";
|
||||
|
Loading…
x
Reference in New Issue
Block a user