Довольно простая ситуация, я пытаюсь импортировать app.listen (порт) для тестирования. Тесты не пройдут (причины ошибки: app.address не является функцией, а server.close не является функцией). На самом деле серверная переменная возвращает пустой объект, поэтому импорт не выполняется должным образом, и это является причиной неудачных тестов ...
genres.test. js
const request = require("supertest");
let server;
describe("/api/genres", () => {
beforeEach(() => {
server = require("../../index");
});
afterEach(() => {
server.close();
});
describe("GET /", () => {
it("should return all genres", async () => {
const res = await request(server).get("/api/genres");
expect(res.status).toBe(200);
});
});
});
index. js
const express = require("express");
const app = express();
const port = process.env.PORT || 3000;
const server = app.listen(port, () => console.log(`Listening on port ${port}`));
module.exports = server;
Я что-то упускаю из-за импорта? Дайте мне знать, если вам нужно больше строк кода / частей (обратите внимание, что индекс. js, который я предоставил, не является полным) или если вам нужно полное сообщение об ошибке.
Я знаю, что этот вопрос уже задавался несколько раз, но в большинстве случаев решение состоит в том, чтобы просто импортировать app.listen вместо app, что я уже сделал. Я также попытался использовать экспорт по умолчанию вместо module.exports.