Uncaught AssertionError: ожидается, что {} будет равно 'testing' - PullRequest
0 голосов
/ 17 октября 2018

Я не уверен, почему он говорит, что объект пуст.Это мой тестовый блок кода.

describe("POST /users", () => {
  let body = {
    name: "testing",
    email: "testing@testing.com",
    password: 123456
  };

  it("Creates a new user", done => {
    request(app)
      .post("/register")
      .send(body)
      .end((err, res) => {
        if (err) return done(err);
        expect(res.body).to.be.equal("testing");
        done();
      });
  });
});

Есть ли что-то, чего мне не хватает для теста, чтобы распознать передаваемую информацию?Как в полезной нагрузке, так как я думал, что это то, для чего .send (полезная нагрузка) был для.

Спасибо за ясность.

** Обновление контроллера и дополнительная информация **

// Тестирование

let request = require("supertest");
let expect = require("chai").expect;
let app = require("../../server/server");

describe("GET /test", function() {
  it("Returns a json for testing", done => {
    request(app)
      .get("/test")
      .end((err, res) => {
        done();
      });
  });
});

describe("POST /users", () => {
  let body = {
    name: "testing",
    email: "testing@testing.com",
    password: 123456
  };

  it("Creates a new user", done => {
    request(app)
      .post("/register")
      .send(body)
      .expect(res => {
        expect(res.body).to.be.equal("testing");
      })
      .end(done);
  });
});

// Пользовательские маршруты

const express = require("express");
const router = express.Router();

// Load User Model
const User = require("../../models/User");

// @route GET api/users/test
// @desc Tests user route
// @access Public
router.get("/test", (req, res) => res.json({ msg: "Users Works" }));

router.post("/register", (req, res) => {
  User.findOne({ email: req.body.email }).then(user => {
    if (user) {
      res.status(409).json({ msg: "User exist" });
    } else {
      const newUser = new User({
        name: req.body.name,
        email: req.body.email,
        password: req.body.password
      });

      newUser
        .save()
        .then(user => res.status(200).send(user))
        .catch(err => console.log(err));
    }
  });
});

module.exports = router;

// Сервер

const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");

const app = express();

const users = require("./routes/api/users");

// Body Parser Middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// DB Config
const db = require("../config/keys").mongoURI;

// Connect to MongoDB Atlas
mongoose.connect(
  db,
  { useNewUrlParser: true },
  (err, client) => {
    if (err) {
      console.log("Error occurred while connecting to MongoDB Atlas...\n", err);
    }
    console.log("Connected...");
  }
);

// Routes
app.use("/api/users", users);

const port = process.env.PORT || 5000;

let server = app.listen(port, () =>
  console.log(`Server running on port ${port}`)
);

module.exports = server;
...