So my middleware is somewhat like this:
const mw = async (req, res, next) => {
await someAsyncWork();
res.on("finish", async () => {
await someAsyncCleanup();
});
next();
}
Here testing someAsyncWork() is quite easy as this is done in a sequential manner. But as you can see, I am listening to the finish event with an async listener. Testing whether the cleanup was done properly is a bit problematic. Are this kind of scenarios not testable or is there any better practice to avoid these scenarios. Or as the last resort, should someone use stubs as a replacement just to check if the listener is invoked and test the someAsyncCleanup separately?