Я запускаю модульное тестирование с моим проектом узла с использованием библиотеки Jest, все работало довольно хорошо. Когда я создал новый тест для проверки подлинности маршрута, он начинает показывать, что сервер уже работает на порте 4000, даже если я использую функцию afterEach (), чтобы закрыть подачу, но не знаю, почему все еще получается, что сервер уже работает на порту 4000.
Даже если я удалил новый тест для проверки подлинности маршрута и перезапустил мой проект, закрыв все терминалы, но всякий раз, когда я запускаю проект, он начинает показывать ошибку, что сервер уже работает на порту 4000.
Воткод в пользовательском тестовом файле, где корректно закрывается сервер, и в следующем тестовом файле я снова использую те же функции для подключения и закрытия сервера.
const request = require("supertest");
const { Genre } = require("../../models/genre");
const { User } = require("../../models/user");
const mongoose = require("mongoose");
let server;
describe("/api/genres", () => {
beforeEach(() => {
server = require("../../index");
});
afterEach(async () => {
server.close();
await Genre.remove({});
});
код второго тестового файла
const { User } = require("../../models/user");
const { Genre } = require("../../models/genre");
const request = require("supertest");
describe("auth middleware", () => {
beforeEach(() => {
server = require("../../index");
});
afterEach(async () => {
await Genre.remove({});
server.close();
});
Вот вывод ............................ ● промежуточное ПО auth ›должно возвращать 401, если токен не предоставлен
listen EADDRINUSE: address already in use :::4000
10 |
11 | const port = process.env.PORT || 4000;
> 12 | const server = app.listen(port, () =>
| ^
at Function.listen (node_modules/express/lib/application.js:618:24)
at Object.<anonymous> (index.js:12:20)
at Object.<anonymous> (tests/integration/auth.test.js:6:14)
Наборы тестов: 1 не пройден, 3 пройден, всего 4 теста*
const winston = require("winston");
const express = require("express");
const app = express();
require("./startup/logging")();
require("./startup/routes")(app);
require("./startup/db")();
require("./startup/config")();
require("./startup/validation")();
const port = process.env.PORT || 4000;
const server = app.listen(port, () =>
winston.info(`Listening on port ${port}...`)
);
module.exports = server;