Я прослушал сигнал 'SIGTERM', чтобы сделать корректное выключение:
// snippet of server.js
process.on('SIGTERM', () => {
console.log('I will close database here.')
process.exit(0)
})
Я использовал Jest для выполнения теста, вот код ниже:
describe('on SIGTERM', () => {
beforeAll(() => {
process.exit = jest.fn(); // substituted by mock function
return require('../server'); // run server.js
});
it('should exit with code 0', async () => {
process.kill(process.pid, 'SIGTERM'); // the code killed my jest process immediately
expect(process.exit).toHaveBeenCalledWith(0);
})
})
Вотсообщение об ошибке ниже:
npm run test: сервер сервер / tests / server.spec.js
error Команда завершилась с кодом выхода 143.
Я был уверен, что process.exit был заменен фиктивной функцией, потому что я пытался вызвать process.exit (0), процесс поддерживается.Но process.kill немедленно убил мой процесс.
Почему это происходит?
Как правильно выполнить мой тест?(Я хочу проверить процесс. (SIGTERM))