Я работаю над тем, где я использую Hapi в качестве веб-сервера для REST API и использую Jest для модульного тестирования.Я только что настроил его для тестирования самих маршрутов REST - с помощью server.inject
на созданном сервере Hapi.
Это работает фантастически, пока тесты проходят.Если тесты не пройдены, все запускается до завершения, но процесс не завершается.
Для справки мой тест выглядит следующим образом:
// @flow
import createServer from '../server';
describe('Hapi Healthchecks', () => {
let server;
beforeEach(async () => {
server = await createServer();
});
test('Hapi Healthchecks respond correctly', async () => {
const response = await server.inject({
method: 'GET',
url: '/health',
});
expect.assertions(1);
expect(response.statusCode).toBe(200);
});
});
createServer
возвращает результат Glue.compose
, так что это настроенный, но еще не запущенный сервер Hapi.Я не запускаю сервер в тестах - в этом нет необходимости, и поэтому нет вызова server.stop()
.Однако, если я добавлю один или оба из них, то это не имеет значения.
Пока тест проходит утверждение, все в порядке.Если по какой-либо причине тест не пройден, все остальное все еще выполняется, включая вызовы afterEach
и afterAll
, но процесс просто не может завершиться.