mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Make code for asserting a promise more strict
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
3480f98391
commit
814ae1ceed
31
src/common/utils/is-promise/is-promise.test.ts
Normal file
31
src/common/utils/is-promise/is-promise.test.ts
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
import { isPromise } from "./is-promise";
|
||||||
|
|
||||||
|
describe("isPromise", () => {
|
||||||
|
it("given promise, returns true", () => {
|
||||||
|
const actual = isPromise(new Promise(() => {}));
|
||||||
|
|
||||||
|
expect(actual).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("given non-promise, returns false", () => {
|
||||||
|
const actual = isPromise({});
|
||||||
|
|
||||||
|
expect(actual).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("given thenable, returns false", () => {
|
||||||
|
const actual = isPromise({ then: () => {} });
|
||||||
|
|
||||||
|
expect(actual).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("given nothing, returns false", () => {
|
||||||
|
const actual = isPromise(undefined);
|
||||||
|
|
||||||
|
expect(actual).toBe(false);
|
||||||
|
});
|
||||||
|
});
|
||||||
7
src/common/utils/is-promise/is-promise.ts
Normal file
7
src/common/utils/is-promise/is-promise.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
export function isPromise(reference: any): reference is Promise<any> {
|
||||||
|
return reference?.constructor === Promise;
|
||||||
|
}
|
||||||
@ -4,6 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import loggerInjectable from "../../logger.injectable";
|
import loggerInjectable from "../../logger.injectable";
|
||||||
|
import { isPromise } from "../is-promise/is-promise";
|
||||||
|
|
||||||
export type WithErrorLoggingFor = (
|
export type WithErrorLoggingFor = (
|
||||||
getErrorMessage: (error: unknown) => string
|
getErrorMessage: (error: unknown) => string
|
||||||
@ -44,7 +45,3 @@ const withErrorLoggingInjectable = getInjectable({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export default withErrorLoggingInjectable;
|
export default withErrorLoggingInjectable;
|
||||||
|
|
||||||
function isPromise(reference: any): reference is Promise<any> {
|
|
||||||
return !!reference?.then;
|
|
||||||
}
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user