res.body.some не является функцией в тестах node.js - PullRequest
0 голосов
/ 02 апреля 2020

Я пишу несколько тестов для 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);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...