jest/prefer-mock-promise-shorthand Style
What it does
When working with mocks of functions that return promises, Jest provides some API sugar functions to reduce the amount of boilerplate you have to write. These methods should be preferred when possible.
Example
javascript
// invalid
jest.fn().mockImplementation(() => Promise.resolve(123));
jest.spyOn(fs.promises, "readFile").mockReturnValue(Promise.reject(new Error("oh noes!")));
myFunction
.mockReturnValueOnce(Promise.resolve(42))
.mockImplementationOnce(() => Promise.resolve(42))
.mockReturnValue(Promise.reject(new Error("too many calls!")));
// valid
javascript
jest.fn().mockResolvedValue(123);
jest.spyOn(fs.promises, "readFile").mockRejectedValue(new Error("oh noes!"));
myFunction.mockResolvedValueOnce(42).mockResolvedValueOnce(42).mockRejectedValue(new Error("too many calls!"));
How to use
To enable this rule in the CLI or using the config file, you can use:
bash
oxlint --deny jest/prefer-mock-promise-shorthand --jest-plugin
json
{
"plugins": ["jest"],
"rules": {
"jest/prefer-mock-promise-shorthand": "error"
}
}