Node.js, Лента и HttpServer - Ошибка: ReqiError: Ошибка: подключить ECONNREFUSED 127.0.0.1:3000 - PullRequest
0 голосов
/ 18 марта 2020

В настоящее время я пишу несколько тестов с использованием ленты для библиотеки HTTP-запросов. Я запускаю HttpServer с URL 'http://localhost: 3000 ' и запускаю для него запрос GET. Тем не менее я получаю сообщение об ошибке: ReqiError: Ошибка: подключить ECONNREFUSED 127.0.0.1:3000. Это заставляет меня думать, что сервер недоступен при запуске теста. Однако я попытался выполнить оператор console.log на объекте сервера, и он, похоже, выполняется. Кто-нибудь сталкивался с этой проблемой раньше, или понимает, почему мой код не работает должным образом?

Вот мой тестовый файл client-integration-tests.js:

'use strict'

const tape = require('tape')
const ReqiClient = require('../../lib/client')
const http = require('http')
let server

tape('setup', function(t) {
    server = http.createServer()
    server.on('request', (req, res) => {
        res.writeHead(200)
        req.pipe(res)
    })
    server.listen(3000, () => {
        server.url = 'http://localhost:' + server.address().port
        t.end()
    })
})

tape('A request should return success status code', function(t) {
    const client = new ReqiClient()
    const requestOptions = {url: server.url, method: 'GET'}
    console.log(server)
    const request = client.request(requestOptions).then((response) => {
        t.equal(200, response.statusCode)
    }).catch((error) => {
        t.fail(error)
    })
    t.end()
})

tape('cleanup', function (t) {
    server.close(t.end)
})

А вот вывод при запуске node client-integration-tests.js

not ok 1 ReqiError: Error: connect ECONNREFUSED 127.0.0.1:3000
  ---
    operator: fail
    stack: |-
      Error: ReqiError: Error: connect ECONNREFUSED 127.0.0.1:3000
          at Test.assert [as _assert] (/home/tlaskey/Desktop/node/reqi/node_modules/tape/lib/test.js:228:54)
          at Test.bound [as _assert] (/home/tlaskey/Desktop/node/reqi/node_modules/tape/lib/test.js:80:32)
          at Test.fail (/home/tlaskey/Desktop/node/reqi/node_modules/tape/lib/test.js:322:10)
          at Test.bound [as fail] (/home/tlaskey/Desktop/node/reqi/node_modules/tape/lib/test.js:80:32)
          at /home/tlaskey/Desktop/node/reqi/tests/integration/client-integration-tests.js:26:11
          at processTicksAndRejections (internal/process/task_queues.js:97:5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...