diff --git a/src/utils/MockableFunctionsFinder.ts b/src/utils/MockableFunctionsFinder.ts index ec6795a..c8cb676 100644 --- a/src/utils/MockableFunctionsFinder.ts +++ b/src/utils/MockableFunctionsFinder.ts @@ -272,7 +272,12 @@ export class MockableFunctionsFinder { } private getClassCodeAsStringWithInheritance(clazz: any) { + return [`const clazz = ${this.getClassAsString(clazz)}`, ...ObjectInspector.getObjectPrototypes(clazz.prototype).map(ObjectPropertyCodeRetriever.getObject)]; + } + + private getClassAsString(clazz: any) { const classCode: string = typeof clazz.toString !== "undefined" ? clazz.toString() : "{}"; - return [`const clazz = ${classCode}`, ...ObjectInspector.getObjectPrototypes(clazz.prototype).map(ObjectPropertyCodeRetriever.getObject)]; + if(classCode === '[object Object]') return '{}'; + return classCode; } } diff --git a/test/mocking.types.spec.ts b/test/mocking.types.spec.ts index 5416d8d..bbfa1dc 100644 --- a/test/mocking.types.spec.ts +++ b/test/mocking.types.spec.ts @@ -255,6 +255,13 @@ describe("mocking", () => { expect(mocked).toBeDefined(); }); }); + + describe("mock empty object", () => { + it("should mock", () => { + const mocked = mock({}); + expect(mocked).toBeDefined(); + }); + }); }); abstract class SampleAbstractClass {