Jest not close () на сервере expressjs при работе в AWS Codebuild - PullRequest
0 голосов
/ 08 февраля 2019

При локальном запуске jest завершается нормально, но при запуске на codebuild jest не завершается и выдает эту ошибку:

Jest обнаружил следующую 1 открытую ручку, потенциально не позволяющую Jest выйти:

● TCPSERVERWRAP

  13 | routes(app) 
  14 |  
> 15 | app.listen(port, async err => { 

Оба этих варианта работают локально, но не на codebuild:

  afterAll((done) => {
    if (app) {
      app.close(done);
    }
  })
  afterAll(async () => {
    if (app) {
      await app.close()      
    }
  })

Использование process.exit(0) не помогает

1 Ответ

0 голосов
/ 09 февраля 2019

Хорошо, немного любительской ошибки.Когда я завернул вызов app.close(), оказалось, что он не определен.Я пытался приблизиться к экспресс-объекту request.Мне пришлось экспортировать объект сервера, из которого был создан экземпляр express:

  afterAll(async () => {  
    try {
      await server.close()      
    } catch (error) {
      console.error(error)
      throw error;
    }
  })
const app = express()
routes(app)

const server = app.listen(port, async err => {
  ...

module.exports = app
module.exports.server = server
...