Node Js express API-тестирование с использованием chai / mocha - невозможно получить параметры запроса в теле - PullRequest
0 голосов
/ 01 апреля 2020

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

Я пытался:

изменить .send({...}) в тесте. js на .query({...}), но не повезло. Заключение ключей из теста. js с кавычками, например, «title»: «Читать книгу»

result json string

server. 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.status(200).send(tasks);
});

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

  let 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.status(200).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 = process.env.APP_URL || "http://localhost:8080"
let should = chai.should();
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) => {
                if (err) {
                    done(err)
                }
                result.should.have.status(200);
                console.log("result is: " + JSON.stringify(result.body))

                done()
            })
    })

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

                done()
            })
    })
})
...