Jest не выходил из игры через секунду после завершения пробного запуска. --detectOpenHandles

Я собираюсь протестировать сервер, работающий с Jest. Иногда это успешно, но иногда это показывает ошибку, как это. введите описание изображения здесь

Поэтому, если я использую флаг --detectOpenHandles, как это было предложено, он всегда будет успешным, не показывая ошибку eny. Это тестовый код.

  it("should be able to initialize a server (development)",async (done) => {
      // Before main() is called there is no active connection:

    expect(connection.readyState).toBe(0);
    return main({
      env: "dev",
      port: PORT,
    })
    .then(async (server: ApolloServer) => {
        // After main() got called, there is an active connection:
      expect(connection.readyState).toBe(1);
      await server.stop();
      done();
    })
  });
  afterAll(async () => {
    await connection.close(); //connection is mongoose.connection
  });

Я не уверен, почему это не удается, когда флаг. И это странно, иногда успех, а иногда неудача.

Спасибо

0 ответов

Я столкнулся с аналогичной проблемой, и мне удалось ее решить, вернув обещание в функции, переданной в afterAll. Например:

afterAll(() => {
  return connection.close(); // connection.close() returns a promise
});

Документы для справки

Не связано с вопросом пользователя, но тем не менее вызывает проблему в заголовке:

Переключение с testEnvironment: 'node', к testEnvironment: 'jsdom', в jest.config.js казалось, решил проблему.

Другие вопросы по тегам