Почему ответ об ошибке HTTP Chai представляет собой документ html? - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь настроить среду тестирования с использованием Mocha и Chai для моего серверного приложения express. Как правило, это довольно стандартное приложение, и я настроил обработчик ошибок промежуточного программного обеспечения, который улавливает все ошибки функций маршрутизации API и соответствующим образом отправляет ответ. Каждый ответ об ошибке имеет следующие атрибуты: name, message, status.

В моем тесте я запускаю следующий код:

const res = await chai
  .request(server)
  .post(API_ENDPOINT)
  .send(REQUEST_BODY)

Я получаю тело ответа from res.text, к которому я применяю JSON.parse, чтобы получить любые атрибуты из тела ответа, которые мне нужны для выполнения соответствующих утверждений. Однако, когда мой сервер выдает ошибку (желаемое поведение), значение res.text становится документом HTML вместо строкового JSON:

<code><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>ERROR MESSAGE

Кто-нибудь может объяснить, что здесь происходит? Я не могу найти похожие темы по этой проблеме.

...