Jest не выходил через одну секунду после завершения тестового прогона при использовании supertest и mongoose - PullRequest
0 голосов
/ 16 октября 2019

Я использую jest для проверки моих конечных точек node.js с помощью supertest.

Однако после запуска мой тестовый jest не завершается, вместо этого он возвращает следующее и зависает:

Jest не завершил работу через одну секунду после завершения тестового прогона.

Обычно это означает, что существуют асинхронные операции, которые не были остановлены в ваших тестах. Для устранения этой проблемы попробуйте запустить Jest с --detectOpenHandles.

import request from "supertest";
import server from "../../src/index";
import mongoose from "mongoose";

describe("Authentication", () => {

    beforeAll( async () => {
        console.log("Test Starting...");
        await mongoose.connection.dropDatabase();
    });

    afterAll( async () => {
        console.log("... Test Ended");
        await mongoose.connection.dropDatabase();
        await mongoose.connection.close();
    });


    it("should authenticate with basic auth", async (done) => {

        const BASIC_AUTH = Buffer.from(TEST_VARIABLES.HS_USERNAME + ":" + TEST_VARIABLES.HS_PASSWORD).toString("base64");

        const auth_response = await request(server).get("/api/v2/auth/admin")
            .set("Authorization", "Basic " + BASIC_AUTH)
            .expect(200);

        done();

    });

1 Ответ

0 голосов
/ 16 октября 2019

Приложение является сервером node.js, который все еще слушает.

server = app.listen(this.config.port, "0.0.0.0");

добавление server.close () к afterAll решило проблему.

  afterAll( async () => {
        console.log("... Test Ended");
        await mongoose.connection.dropDatabase();
        await mongoose.connection.close();
        app.cose()
    });
...