typescript - 笑话:测试完成后无法登录
问题描述
我有一个调整图像大小的功能:
export default function resize(
inputPath: string,
outputPath: string,
format: string,
width: number | null,
height: number | null
): Promise<string> {
return new Promise((resolve) => {
setTimeout(() => {
const readStream: fs.ReadStream = fs.createReadStream(inputPath);
const writeStream: fs.WriteStream = fs.createWriteStream(outputPath);
writeStream.on('error', () => console.log('Error'));
writeStream.on('close', () => console.log('Successfully saved'));
let transform: sharp.Sharp = sharp();
if (format === 'jpeg' || format === 'png') {
transform = transform.toFormat(format);
}
transform = transform
.resize(width, height)
.on('info', (fileInfo) => console.log('Successfully resized'));
readStream.pipe(transform).pipe(writeStream);
resolve('slow');
}, 1000);
});
}
我编写了一个将调用该函数的测试:
describe('reszie', () => {
test('resize the images', async () => {
const s: string = await resize(
'src/images/full/palmtunnel.jpg',
'src/images/thumbnails/palmtunnel_500_400.jpg',
'jpeg',
500,
400
);
console.log(s);
});
});
但是,我收到下面提供的错误消息:
Console
console.log
slow
at src/modules/tests/transformImage.spec.ts:45:17
● Cannot log after tests are done. Did you forget to wait for something async in your test?
Attempted to log "Successfully resized".
19 | let transform: sharp.Sharp = sharp();
20 | if (format === 'jpeg' || format === 'png') {
> 21 | transform = transform.toFormat(format);
| ^
22 | }
23 |
24 | transform = transform
at console.log (node_modules/@jest/console/build/BufferedConsole.js:197:10)
at Sharp.<anonymous> (src/modules/transformImage.ts:21:66)
at Object.<anonymous> (node_modules/sharp/lib/output.js:862:18)
● Cannot log after tests are done. Did you forget to wait for something async in your test?
Attempted to log "Successfully saved".
12 | setTimeout(() => {
13 | const readStream: fs.ReadStream = fs.createReadStream(inputPath);
> 14 | const writeStream: fs.WriteStream = fs.createWriteStream(outputPath);
| ^
15 |
16 | writeStream.on('error', () => console.log('Error'));
17 | writeStream.on('close', () => console.log('Successfully saved'));
at console.log (node_modules/@jest/console/build/BufferedConsole.js:197:10)
at WriteStream.<anonymous> (src/modules/transformImage.ts:14:66)
如何修改测试以获得结果'Successfully resized'
?
解决方案
推荐阅读
- python - 模块“numpy”没有属性“__config__”
- flutter - 没有 00:00:00.000 的日期时间用于颤动
- jquery - NVDA 屏幕阅读器无法读取动态内容
- .net - DataAdapter / CommandBuilder - 多列的唯一约束
- mongodb - 如何在下面给出的名为 l5p1s1 的 mongodb 集合中找到名为 v 的文档的给定值的总和
- flutter - for-in 使用 dart 异常:类型 '_InternalLinkedHashMap
- javascript - 我想通过添加 CR 和减去 DR 值来使用 JQUERY 计算所有总数
- html - 使用父元素的宽度
- spring-boot - 如何使用 junit5 jupiter 引擎运行 @SpringBatchTest
- python - 如何从python中的字节数组加载密钥库