Получите запрос с проблемой супер-анализа - PullRequest
0 голосов
/ 06 июня 2018

Я использую supertest для проверки запросов на получение к mLab-приложению.Если я делаю обычный запрос GET с почтальоном, я получаю это:

{"_id":"5b169a9951573c50d9682d52","text":"First test note","title":"Test1"}

Но ответ, полученный в тесте, добавляет косую черту перед каждой цитатой:

{\\"_id\\":\\"5b169a9951573c50d9682d52\\",\\"text\\":\\"First test note\\",\\"title\\":\\"Test1\\"}

Это мой тестовый файл:

const server = require("../../app/server");

const request = require("supertest")(server);

describe("routes: index", () => {

  test("should respond as expected", async() => {

    const app = request("http://localhost:8000");

    const response = await app.get("/notes/5b169a9951573c50d9682d52");

    expect(response).toEqual("First test note");

    expect(response).toEqual("Test1");

  });

});

Это мой сервер

const express = require('express'); // node module 
const MongoClient = require('mongodb').MongoClient;
const bodyParser = require('body-parser');
const db = require('./config/db');

const app = express();

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

app.use(bodyParser.urlencoded({
  extended: true
}));

MongoClient.connect(db.testUrl, (err, database) => {
  if (err) return console.log(err)
  require('./routes')(app, database);
  app.listen(port, () => {
    console.log('We are live on ' + port);
    console.log(process.env.PORT);
  });
})

module.exports = app;

1 Ответ

0 голосов
/ 06 июня 2018

Я сам не использовал supertest, но краткий взгляд на ваш код и документацию сразу показывает несколько проблем.

Прежде всего, то, что вы видите, это то, о чем вам сообщает ваш тестовый фреймворк.строковое представление объекта json.Это правильно.

Неправильно то, как вы пытаетесь обработать ответ.Проверьте документацию:

https://www.npmjs.com/package/supertest

Я думаю, вы можете решить проблему, установив ожидаемый тип 2) и получив доступ к элементу тела ответа

const response = await app.get("/notes/5b169a9951573c50d9682d52").set('Accept', 'application/json');

expect(response.body.text).toEqual("First test note");

Надеюсь, это работает.

...