Нужно ли мне подключаться к моей базе данных mongodb в файле jest test или я могу вызывать функции из других классов, которые подключаются к базе данных? - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь протестировать некоторые из моих функций базы данных с помощью jest. В настоящее время у меня есть javascript файл с различными функциями. Эти функции подключаются к базе данных в начале каждой, выполняют поиск в БД и возвращают массив. Я пытаюсь просто вызвать эти функции из моего jest-файла и проверить возвращаемое значение этих функций, но я получаю эту ошибку:

MongoParseError: неверный URI, не может быть проанализирован

Мои функции отлично работают вне вызова из моего тестового файла, поэтому я могу только предположить, что есть некоторая проблема с НЕ подключением к базе данных из тестового файла.

Пример подключения функции к база данных

export async function getPrograms(programId): Promise<any> {
  console.log("calling get programs");
  console.log(programId);
  const db = await commonDb.getInstance();
  console.log("Database: ", db);
  programId = programId ? programId : "";
  const regex = new RegExp(`.*${programId}.*`, "i");
  const programs = await db
    .collection(COLLECTIONS.COMMON.PROGRAMS)
    .find({ _id: regex })
    .toArray();
  if (programs.length > 0) {
    console.log(programs);
    return programs;
  }
  return null;
}

Пример теста, который я пытаюсь запустить, который выдает ошибку

import {
  getPrograms
} from "../../../src/classes/programs";

test("calling getPrograms with no programId gives all programs", async() => {
  const programs = await getPrograms("someId");
  expect(programs).toBe(["someProgram"]);
});

1 Ответ

0 голосов
/ 30 января 2020

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

import dotenv from "dotenv";
dotenv.config();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...