Я пытался это некоторое время, и я не мог найти решение.
Я пробовал много решений (папка ___ mock, папка mockimplementation, mock и многое другое), но у меня всегда было то же самое ошибка client.mockImplementation не является функцией
//restclient.js
module.exports = (cfg) => new Client(config);
// api.js
const client = require('restclient');
module.exports.doRequest = () => {
const request = client();
const config = {};
request.get('/path/to/request', config)
.then(result => console.log(result))
}
//api.tests.js
const client = require('restclient');
const api = require('./api');
jest.mock('restclient', () => () => ({
get: jest.fn(),
}));
describe('testing API', () => {
test('test then', async () => {
try {
restclient.mockImplementation(() => () => ({
get: (url, config) => 'Hi! I'm mocked',
}));
const result = await api.doRequest();
console.log('result', result);
} catch (e) {
console.log('eee', e);
}
});
});
Я не смог найти решение, думаю, я не могу высмеять const request = restclient()
часть, но я не знаю почему !!