I am testing promises which I get from the request-image-size library. Upon request from the library with an image URL I receive as a response of the image dimensions and an error if the image can`t be opened.
My test.js file, It case:
describe('Test images', () => {
it('Should test all image sizes',async (done) => {
const imagesResonses = await getAllImageResponses(imagesURLs)
// if I console log imageResponses I get an array of promises,
// two of them must be rejected and throw an error
// [
// Promise { <pending> },
// Promise { <pending> },
// Promise { <pending> },
// Promise { <pending> },
// Promise { <pending> },
// Promise { <pending> }
// ]
imagesResonses.map((image) => image.then((res) => {
console.log(res)
assert(res.height > 0, 'height must be greater than zero');
done()
}).catch((err) => {
console.log(err)
done(err)
}))
})
})
The problem:
I have successfully tested single promises before in mocha with using done(), but never multiple promises. I know I am not handling the promises the right way, but just dont know what else to try.
In this case, the tests are run 2 times and at the end I receive an error:
done() called multiple times in test <Test links and images S
hould test all image sizes> of file C:path/test.js; in addition, don
e() received error: Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.
Expectation: I want to run the test on each promise and do an assertion, and if the promise is rejected log out the error.