Я пишу несколько тестов для NodeJs API, который я создаю, и получаю сообщение об ошибке при попытке проверить, существует ли значение в MongoDB, возвратил JSON объект.
Ошибка, которую я получаю получение:
TypeError: res.body.some is not a function
Я пробую некоторый пример кода, который я нашел, но я думаю, что, возможно, метод, возможно, устарел.
Если some
не является допустимой функцией, что следует использовать вместо нее?
Версии:
Узел: v8.10.0
Express: 3.5.2
Запрос Объект: const request = require('supertest');
Объект сервера
let server;
describe('/api/hosts', () => {
beforeEach(() => {
server = require('../../index');
})
afterEach(async () => {
await server.close();
await Host.deleteMany({});
});
Объявление синтаксического анализатора express и JSON:
const express = require('express');
const hosts = require('../routes/hosts');
module.exports = function(app) {
app.use(express.json());
app.use('/api/hosts', hosts);
}
Полная ошибка:
GET /:ipV4
✕ should return a host when a valid IPv4 is passed (14ms)
● /api/hosts › GET /:ipV4 › should return a host when a valid IPv4 is passed
TypeError: res.body.some is not a function
61 |
62 | const res = await request(server).get('/api/hosts/' + host.ipV4);
> 63 | expect(res.body.some(h => h.ipV4 === '127.0.0.1')).toBeTruthy();
| ^
64 | expect(res.status).toBe(200);
65 | });
66 |
at Object.it (tests/integration/hosts.test.js:63:29)
Тест
describe('GET /:ipV4', () => {
it('should return a host when a valid IPv4 is passed', async () => {
const host = new Host({ ipV4: '127.0.0.1' });
await host.save();
const res = await request(server).get('/api/hosts/' + host.ipV4);
expect(res.body.some(h => h.ipV4 === '127.0.0.1')).toBeTruthy();
expect(res.status).toBe(200);
});
});