No estoy seguro de por qué la solicitud GET
no puede devolverme los datos
Básicamente, mi solicitud GET
se ve así:
router.get('/', (req, res) => { res.set('Content-Type', 'text/html') res.status(200).send(Buffer.from('<p>some html</p>')) });
Luego uso supertest
para probar esta ruta.
test('test', async () => { const res = await request(app) .get('/') expect(res.statusCode).toBe(200); expect(res.body.toString()).toBe("<p>some html</p>"); });
Entonces yo console.log(res.body)
, me devuelve el {}
vacío
No estoy seguro de por qué el retorno de la ruta me da el obj vacío.
Los datos de respuesta deben obtenerse de res.text
no de res.body
.
app.js
:
const app = require('express')(); app.get('/', (req, res) => { res.set('Content-Type', 'text/html'); res.status(200).send(Buffer.from('<p>some html</p>')); }); module.exports = app;
app.test.js
:
const app = require('./app'); const request = require('supertest'); describe('71328567', () => { test('should pass', async () => { const res = await request(app).get('/'); expect(res.type).toBe('text/html'); expect(res.text).toBe('<p>some html</p>'); }); });
Resultado de la prueba:
PASS stackoverflow/71328567/app.test.js 71328567 ✓ should pass (26 ms) Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 1.657 s