Using along with Jest
budziam opened this issue · 4 comments
budziam commented
Decorating the method with @boundMethod
decorator causes that Jest creates incorrect mocked object based on class definition.
Example code
import { boundMethod } from "autobind-decorator";
import jestMock from "jest-mock";
class Abc {
@boundMethod
foo() {
//
}
bar() {
//
}
}
const Mock = jestMock.generateFromMetadata(jestMock.getMetadata(Abc));
const obj = new Mock();
console.log(Object.keys(obj)); // === ["bar"]
The problem is that the object obj
doesn't have the foo
method.
The way how to create mocked object instance is taken from this library: https://www.npmjs.com/package/jest-create-mock-instance
budziam commented
None of those solve my issue
cfecherolle commented
Still an issue as of today: when using something like
jest.spyOn(instance, "myHandler");
Where myHandler is a boundMethod in my class component that I'm trying to test, test gives the following error:
TypeError: object[methodName].mockImplementation is not a function
tibabit commented
Any updates on this? Has anyone solved this?