Ошибка типа: Правая часть «instanceof» не является вызываемой ШУТКОЙ и СУПЕРТЕСТОМ

#node.js #express #jestjs #supertest

Вопрос:

Я пытаюсь протестировать Nodejs и экспресс-API с помощью JEST и Супертеста каждый раз, когда я запускаю тест npm, Jest завершается ошибкой, из-за которой вы пытаетесь импортировать файл после того, как среда Jest была разрушена, я ожидаю, что тест будет запущен, и отправляю запросы API, чтобы проверить, все ли API работают должным образом.

Вот мой server.js структура файла

 const express = require("express");
const { readdirSync } = require("fs");
const cors = require("cors");
const morgan = require("morgan");
const dotenv = require("dotenv");
const connectDB = require("./config/DB");
const { erroHandler } = require("./middlewares/errorHandler");
//Load Config
dotenv.config({ path: "./config/config.env" });

//db connecnt
connectDB();

// Jest testing
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(morgan("dev"));
app.use(cors());
readdirSync("./routes").map((r) => app.use("/api", require("./routes/"   r)));
app.use(erroHandler);
module.exports = app;
 

Я пытаюсь запустить app.listen() в другом файле, который я называю index.js

 const app = require("./server");
const PORT = process.env.PORT || 8000;
app.listen(PORT, () => {
  console.log(`Server Listening ${PORT}`);
});
 

В моем тестовом файле сначала я пытаюсь подключиться к базе данных, а затем начать тестирование API.

 const app = require("../server");
const supertest = require("supertest");

beforeEach(() => {
  const connectDB = async () => {
    try {
      const conn = await mongoose.connect(process.env.MONGO_URI, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        useFindAndModify: false,
        useCreateIndex: true,
      });
      console.log(`MongoDB connected`);
    } catch (error) {
      console.log("Mongoose Erro", error);
      process.exit(1);
    }
  };
});

it("Testing to see if Jest works", () => {});
 

В моем файле backage.json тест npm должен запускать JEST

  "scripts": {
    "test": "jest",
  },
 

Вот полная проблема, если вы получите лучшие предложения, также приветствуется.