Использование chaihttp для проверки URL-адреса, чтобы убедиться, что ссылка действительна - PullRequest
0 голосов
/ 13 июля 2020

Я пишу спокойный api для отправки обратно изображений реакции аниме. Мой тест продолжает терпеть неудачу, потому что я получаю следующую ошибку:

Uncaught AssertionError: Error: {"code":"ECONNRESET"}
      at chai.request.get.end (test/test.js:94:28)
      at Test.Request.callback (node_modules/superagent/lib/node/index.js:728:3)
      at ClientRequest.req.once.err (node_modules/superagent/lib/node/index.js:647:10)
      at Socket.socketOnEnd (_http_client.js:426:9)
      at endReadableNT (_stream_readable.js:1125:12)
      at process._tickCallback (internal/process/next_tick.js:63:19)

Вот тест:

    it('It should receive valid image link',  done => {
      chai.request(server)
        .get('/api/categories')
        .end((err, res) => {
          if(err) {
            expect.fail('Error: ' + JSON.stringify(err))
          }
          const [category] = res.body
          chai.request(server)
            .get(`/api/reactions?category=${category}`)
            .end((err, res) => {
              if (err) {
                expect.fail('Error: ' + JSON.stringify(err))
              }
              const [imageUrl] = res.body
              chai.request(imageUrl)
                .get('/')
                .end((err, res) => {
                  if (err) {
                    expect.fail('Error: ' + JSON.stringify(err))
                  }
                  expect(res).to.have.status(200)
                  done()
                })
            })
        })
    })

У меня такое ощущение, что это связано с каким-то состоянием гонки. Я экспортирую свой файл index. js и обслуживаю файлы с помощью промежуточного программного обеспечения stati c. Вот мой индекс. js

require('dotenv').config()
const express = require('express')
const app = express()
const path = require('path')
const cors = require('cors')
const {ClientError, ServerError} = require('./services/errorhandling')

app.use(cors())
app.use(express.json())

app.use('/', express.static(path.join(__dirname, 'reactions')))

app.use('/api', require('./routes/routes'))

app.use((err, req, res, next) => {
  if (err instanceof ClientError || err instanceof ServerError) {
    res.status(err.status).json({
      message: err.message
    })
  } else {
    res.status(500).json({
      message: 'Unexpected Error Occurred'
    })
  }
})

app.listen(process.env.PORT, () => {
  console.log(`listening on port ${process.env.PORT}`)
})

module.exports = app

...