我正在使用 Nestjs 并编写了下面的函数,该函数从发布请求接收文件并将其保存在我的项目中的文件夹中。我的问题是我不确定如何测试on('error')分支。
函数到单元测试。
saveFile({ createReadStream, filename }: FileUpload): Promise<boolean> {
return new Promise(async (resolve, reject) => {
createReadStream().pipe(
createWriteStream(join(process.cwd(), `apps/mull-api/uploads/${filename}`))
.on('finish', () => resolve(true))
.on('error', () => {
console.log(createReadStream);
reject(false);
})
);
});
}
Run Code Online (Sandbox Code Playgroud)
我如何测试on('finish')分支
it('should save file', async () => {
const returnedFile = await service.saveFile(mockFile);
expect(returnedFile).toBe(true);
});
Run Code Online (Sandbox Code Playgroud)
这就是我的模拟文件的样子。我尝试提供一个名称为空的模拟文件,但它出错了。
export const mockFile: FileUpload = {
filename: 'zoro',
mimetype: 'image/jpeg',
encoding: '7bit',
createReadStream(): ReadStream {
return fs.createReadStream(join(process.cwd(), `apps/mull-api/uploads/mock-upload/zoro`));
},
};
Run Code Online (Sandbox Code Playgroud)