Мокко / Чай - UnhandledPromiseRejection, ECONNREFEDED - PullRequest
0 голосов
/ 01 апреля 2020

Мой веб-API, сервер. js использует mongodb в качестве своей базы данных и докеризируется в контейнере docker с использованием docker -compose.

Я использую chai / mocha для создания теста. js где test. js будет докеризован в контейнере и будет использоваться для проверки моего веб-API, где мой веб-API будет работать в localhost: 8080 (не уверен, что это правильный способ, я установил server=http://localhost:8080). Мой тестовый контейнер будет открыт для порта 80.

После выполнения тестов mocha меня выдает необработанное отклонение обещания, исключение ECONNREFUSED, когда я не могу подключиться к порту 8080.

Что я делаю не так?

сервер. js:

const express = require("express");
const app = express();
const connectDb = require("./src/connection");
const Task = require("./src/Task.model");

const PORT = 8080;

app.use(express.urlencoded({ extended: false }));

app.get("/tasks", async (req, res) => {
  const tasks = await Task.find();
  res.json(tasks);
});

app.post("/task-create", async (req, res) => {

  const task = new Task(
    {
      title: req.query.title,
      description: req.query.description,
      start: req.query.start,
      end: req.query.end,
      priority: req.query.priority,
      category: req.query.category,
      status: req.query.status
    });

  await task.save().then(() => console.log("Task created"));

  res.send(task);
});

app.listen(PORT, function() {
  console.log(`Listening on ${PORT}`);

  connectDb().then(() => {
    console.log("MongoDb connected");
  });
});

тест. js

let chai = require("chai");
let chaiHttp = require("chai-http");
let server="http://localhost:8080"
chai.use(chaiHttp);

describe ("CRUD OPERATIONS", () => {

    it ("Should add task in DB", (done) => {
        chai.request(server)
            .post("/task-create")
            .send({
                title: "Read a book",
                description: "Quiet activity",
                start: "2020/03/02",
                end: "2020/03/06",
                priority: "high",
                category: "education",
                status: false
            })
            .end((err, result) => {
                result.should.have.status(200);
                console.log("result is: " + result.body)

                done()
            })
    })

    it ("Should Fetch all the tasks", (done) => {
        chai.request(server)
            .get("/tasks")
            .end((err, result) => {
                if ("error is: " + err) {
                    console.log(err)
                }
                result.should.have.status(200);
                console.log("result is: " + result.body)

                done()
            })
    })
})

ECONNREFUSED

...