jest mock library function code example
Example 1: jest manual mock node module
const _ = require('lodash')
module.exports = () => _.repeat('abc', 3)
jest.mock('lodash')
const lodashMock = require('lodash')
const { repeat } = jest.requireActual('lodash')
const lodashRepeat = require('../lodash')
describe('manual mock module', () => {
beforeEach(() => {
lodashMock.repeat.mockReturnValue(repeat('xxx', 3))
})
it('lodash repeat value', () => {
expect(jest.isMockFunction(lodashMock)).toBeTruthy()
expect(lodashRepeat()).toBeDefined()
expect(lodashRepeat()).toBe("xxxxxxxxx")
expect(lodashRepeat().length).toBe(9)
})
})
Example 2: how to mock a library in jest
import randomColor from "randomcolor";
jest.mock("randomColor", () => {
return {
randomColor: () => {
return mockColor('#123456');
}
}
});
let mockColor = jest.fn();
Example 3: jest mock implementation
describe("mockImplementation", () => {
test("function", () => {
const mockFn1 = jest.fn().mockImplementation(() => 42);
const mockFn2 = jest.fn(() => 42);
expect(mockFn1()).toBe(42);
expect(mockFn2()).toBe(42);
});
Example 4: jest mock call
test("mock.calls", () => {
const mockFn = jest.fn();
mockFn(1, 2);
expect(mockFn.mock.calls).toEqual([[1, 2]]);
});
Example 5: jest mock mockname
test("mockName", () => {
const mockFn = jest.fn().mockName("mockedFunction");
mockFn();
expect(mockFn).toHaveBeenCalled();
});