neo4j Node js Юнит тест с Jest - PullRequest
       6

neo4j Node js Юнит тест с Jest

0 голосов
/ 30 октября 2019

Я использую Jest Framework для создания юнит-тестов. Когда я запускаю их. в конце появляется сообщение:

"Jest не завершил свою работу через одну секунду после завершения тестового прогона. Обычно это означает, что существуют асинхронные операции, которые не были остановлены в ваших тестах. Рассмотрите возможность запуска Jest с --detectOpenHandles для устранения этой проблемы. "

Для выхода я использую команду" --forceExit ". Кроме того, я пытался найти проблему с --detectOpenHandles, но ничего не показывалось.

Я не могу найти то, что не закрыто, сеанс, драйвер или что-то еще. Как это можно исправить?

const neo4j = require("neo4j-driver");
const driver = neo4j.v1.driver(
  `bolt://${host}`,
  neo4j.v1.auth.basic(username, password)
);

beforeAll(async () => {
  await cleanDB();
});

afterAll(async () => {
  await cleanDB();
  driver.close();
});

async function cleanDB() {
  await runQuery(`...query`);
}

async function runQuery(query) {
  const session = driver.session();
  return session
    .writeTransaction(tx => tx.run(query))
    .then(result => {
      session.close();
      return result;
    })
    .catch(error => {
      session.close();
      return { error };
    });
}

describe(`bla-bla-bla`, function() {
  beforeAll(async () => {
    await dataBaseLoader(data);
  });

  test(`bla-bla-bla`, async function() {
    const result = await runQuery(
    '...query' );
   //Body of Test
    expect(result).toStrictEqual(expected);
  });

1 Ответ

0 голосов
/ 30 октября 2019

Нет необходимости использовать async перед функцией , если вы не используете await в теле, также если функция не async доступ к нему без ожидание

function cleanDB() {
  runQuery(`...query`);
}

function runQuery(query) {
  const session = driver.session();
  return session
    .writeTransaction(tx => tx.run(query))
    .then(result => {
      session.close();
      return result;
    })
    .catch(error => {
      session.close();
      return { error };
    });
}

и т. Д., Проверьте все свои функции, возможно, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...