Шутник не пройдет, даже если прокомментирован первый тест - PullRequest
0 голосов
/ 06 марта 2020

Я писал тесты для некоторых конечных точек аутентификации, когда натолкнулся на ошибку, похожую на проблему, которую, похоже, не могу понять.

Этот тест не пройдет:

it("Testing /auth/signup/lol", () => {
  const test = true;
  expect(test).toBe(true);
  console.log("finished test?");
});

Единственный способ воспроизвести эту проблему - это взять весь код установки и разрыва, затем переместить его в другой файл вместе с тестом, который меня беспокоит (как я уже сделал, этот тест скопирован из auth.test. js).

Я провел утро, пытаясь выяснить проблему, единственный раз, когда тест прошел, когда я удалил код установки. Однако на notebooks.test. js и auth.test. js (исключая два последних трех теста в нижней части скрипта auth.tests. js) коды установки работают так, как задумано.

Что не так с этим кодом?

Шаги для воспроизведения:

  1. Клонировать этот репозиторий
  2. Переключиться на Develop Branch
  3. Go на внутренний каталог
  4. Установить все пакеты
  5. Запустить 'npm test tests / endpoints / auth2.test. js'

Я бы выложил небольшую программу воспроизвести проблему, но все попытки сделать это потерпели неудачу.

1 Ответ

1 голос
/ 06 марта 2020

есть тайм-аут в методе afterEach (), потому что collection.users.drop () возвращает неопределенное значение (результат не определен). Как минимум, добавьте условие else при тестировании значения результата, чтобы вы могли выйти из метода до достижения тайм-аута 10 с. Может быть, требуется какой-то дополнительный код, но я не знаю логи c вашего кода и теста, так что, возможно, afterEach должен делать больше вещей. Вот рабочий код:

afterEach(done => {
    server.getTokenManager().empty()
    let collections = server.getClient()?.connection.collections
    if (collections === undefined) {
        done()
        return
    }
    if (collections.users !== undefined) {
        collections.users.drop((err: any, result: any) => {
            if (result) {
                done()
            } else {
                done()
            }
        })
    }
}, 10000)

Остальной код в порядке.

enter image description here

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