Итак, у меня есть nodeJS бэкэнд, и я пытаюсь добавить интеграционные тесты.
Проблема в том, что он всегда превышает время ожидания 2 секунды. Документация Mocha говорит мне вызвать "done ()" при обратном вызове обещания или вернуть обещание.
Я не могу использовать оба, потому что это выдаст другую ошибку. У меня есть несколько асин c вызовов в одном тесте, поэтому я не знаю, куда звонить done ().
Ручная установка времени ожидания не подходит для меня, мне это не нравится и это не элегантное решение.
it('should return a working presigned upload URL', async () => {
let objectFromS3;
// get the presigned url, try if we can upload to S3 using this url
const uploadUrl = await module.getPresignedUploadUrl();
// upload a sample file using the uploadUrl
await axios.put(uploadUrl, sampleVideoFile);
// Directly get the object from S3 to check if its really uploaded there
// s3Params contains the Bucket and Key(file name)
objectFromS3 = await s3.getObject(s3Params).promise();
expect(objectFromS3).to.not.undefined;
// Delete the uploaded object (I can put this inside afterEach)
await s3.deleteObject(s3Params).promise();
})
Как вы можете видеть, у меня есть несколько асин c вызовов в одном тесте, поэтому я не знаю, какое обещание вернуть или в каком месте использовать done () ;
Я попытался передать done
в параметре и использовал done()
в последней строке, и это привело к:
Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.