#javascript #node.js #jestjs #continuous-integration #tdd
#javascript #node.js #jestjs #непрерывная интеграция #tdd
Вопрос:
Я использую jest для выполнения своих тестов CI, я пытаюсь отправлять параметры как форму с помощью jest, но я всегда получаю ошибку 500, это мой login.test.js
const request = require('supertest');
const app = require('../routes/login');
describe('Login', () => {
test('Login correcto', async () => {
const response = await request(app)
.post('/login')
.send({ user: 'hector' })
.set('user', 'hector')
.set('Content-Type', 'application/json')
expect(response.statusCode).toEqual(200)
});
});
это мой login.js из маршрутов
app.post('/login', (req, res) => {
let body = req.body;
let user = body.user;
console.log(user);
return res.status(200).send('okey');
});
Я отправляю пользователя как форму, но он не работает, я получаю сообщение об ошибке 500, так что я могу сделать?
Ответ №1:
Проблема в том, что ваше экспресс-приложение не может проанализировать отправляемый ему JSON. Добавление промежуточного программного обеспечения express.json app.use(express.json());
устраняет вашу проблему:
const express = require('express');
const app = express();
app.use(express.json());
app.post('/login', (req, res) => {
let body = req.body;
let user = body.user;
console.log(user);
return res.status(200).send('okey');
});