Я столкнулся с очень сложной ситуацией. Я постараюсь сделать его как можно более кратким.
Поэтому у меня есть такой код в myModule.js :
const lib = require('@third-party/lib');
const myFunction = () => {
const client = lib.createClient('foo');
return new Promise((resolve, reject) => {
client.on('error', (err) => reject(err));
client.on('success', () => {
client.as(param1).post(param2, param3, (err, data) => {
if (err) reject(err);
// Some important logical processing of data
resolve(data);
});
});
});
}
module.exports = { myFunction };
Есть несколько вещей, которые я могу высмеять, например: createClient
.Что я не умею издеваться, так это часть события Я даже не знаю, как это сделать. И часть .as().post()
.
Вот как мой тест на шутку выглядит так:
const myModule = require('./myModule');
const mockData = require('./mockData');
describe('myFunction', () => {
it('Should resolve promise when lib calls success event', async () => {
try {
const myData = await myModule.myFunction();
expect(myData).toMatchObject(mockData.resolvedData);
} catch (err) {
expect(err).toBeNull();
}
})
});
Любая помощь, высоко ценится.
Я пытался найти похожие вопросы, но на данный момент мой разум просто перестал работать ... Пожалуйста, дайте мне знатьесли вам нужно больше деталей.