Запустить большое количество асинхронных тестов mocha node.js
Хочу протестировать каждую ручку своего сервера NodeJS, чтобы она отдавала правильный ответ на мой POST запрос.
Есть функция, которая асинхронно дергает ручку и сравнивает реальный ответ с нашими ожиданиями:
const send_post_data = async(route, post_data, statusCode) => {
const res =
await chai.request('localhost:3000').
post(route).
send(post_data);
expect(res.statusCode).to.be.eq(statusCode);
return res;
}
Следующий код отрабатывает без ошибок, но если сервер недоступен по какой-то причине, первый тест будет зависать на 2000 мс, после чего зафейлится, и будет запущен второй тест. Если тестов будет 10, то их время выполнения будет в районе 20 секунд.
describe('My Tests', async() => {
it('My test 1', async() => {
await send_post_data('/route1', {}, 200);
});
it('My test 2', async() => {
await send_post_data('/route2', {}, 201);
});
}
У меня есть массив ручек: const routes = ['myroute', 'myroute2' ...]
Я хочу асинхронно запустить все тесты, я делаю так:
describe('Test Routes', () => {
for(let i = 0; i < routes.length; ++i) {
it('Test ' + (i+1), async() => {
await send_post_data('/route1', {}, 200);
})
}
})
Если ручек много и сервер не отвечает, то тесты выполняются около минуты. Я хочу каким-то образом создать массив таких тестов и запустить их разом и не ждать их общее время выполнения больше 2-3 секунд, при этом хочется видеть красивый вывод Mocha, чтобы каждый тест ручки заворачивался в отдельный it(). Такое можно сделать средствами mocha?