У меня есть обещание, которое вызывает HTTP get, для извлечения файла csv, этот HTTP возвращает мне ответ, который я могу использовать в качестве потока, я передаю ответ через синтаксический анализатор csv и подумал, что еще один забавный c, который является записываемым потоком, а затем я слушаю некоторые события.
Но моя проблема заключается в проверке этого, моя проблема в том, что я не могу смоделировать вызов событий, я не знаю, как достичь коды внутри fini sh и error.
Вот фрагмент кода, который извлекает файл и передает ответ:
return new Promise((resolve, reject) => {
https.get(url, async response => {
response
.pipe(this.csvParser)
.pipe(crazyfunc)
.on("finish", () => {
logger.info("File process finished")
resolve()
})
.on("error", (err: Error) => {
if (err) {
reject(err)
}
})
resolve()
})
})
А вот мой файл .spe c, я высмеивать этот призыв следующим образом:
const response = {
pipe: () => { },
on: () => { }
};
beforeEach(async () => {
spyOn(response, 'pipe').and.returnValue(response)
spyOn(response, 'on').and.returnValue(response)
});
spyOn(https, 'get').and.callFake((url, func) => func(response))