Я пытаюсь настроить среду тестирования с использованием 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
Кто-нибудь может объяснить, что здесь происходит? Я не могу найти похожие темы по этой проблеме.