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:
Janne SavolainenandMikko Aspiala committed 2022-05-25 10:18:23 +03:00
1 parent 3480f98391
commit 814ae1ceed
3 files changed
+39 -4

No files matched your search

@@ -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);
});
});
@@ -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 loggerInjectable from "../../logger.injectable";
import { isPromise } from "../is-promise/is-promise";
export type WithErrorLoggingFor = (
getErrorMessage: (error: unknown) => string
@@ -44,7 +45,3 @@ const withErrorLoggingInjectable = getInjectable({
});
export default withErrorLoggingInjectable;
function isPromise(reference: any): reference is Promise<any> {
return !!reference?.then;
}