async nodejs unit tests with on()

Viewed 16

I am new to nodejs and unit tests, stuck with the implementation with .on(), please can you provide me the unit tests for this one?

async function getFile(req, res) {
  const { logger, span } = startLogger(req, FILE)
  try {
    logger.info(`info`)
    request.get({ url: `http://localhost:3000`})
      .on('response', response => {
         if (response.statusCode === 200) {
           res.writeHead(200, {'Content-Type': 'application/octet-stream', 'Content-Disposition': `attachment; filename=file.zip`})
         } else {
           prefixedLogger.error(`Failed ${response.statusCode}`)
           res.writeHead(response.statusCode)
         }
      })
      .on('error', error => {
       Logger.error(error)
       finishSpanError(span, error, Logger)
       res.writeHead(500)
       res.end()
      })
      .on('end', () => {
        Logger.trace('ALM download stream complete')
        terminateSpan(span, Logger)
        res.end()
      })
      .pipe(res)
  } catch (error) {
    Logger.error(error)
    finishSpanError(span, Logger)
    res.writeHead(500)
    res.end()
  }
}

Since this is something new for me, I am taking longer than expected.

0 Answers
Related