fetchMock: uncaught typeError - PullRequest
       23

fetchMock: uncaught typeError

0 голосов
/ 22 февраля 2019

Я высмеял мои API-ответы с помощью fetchMock (v.5.13.1).Я работал с ним довольно долго, и я еще не видел такого поведения.

Я высмеял два GET-ответа, которые очень похожи.

fetchMock.get('glob:*/shippings/',"results":[
{"id": "1234", "status": "RELEASED", "foo": "bar"},
{"id": "5678", "status": "CREATED", "foo": "bar"},)

fetchMock.get('glob:*/shipping/myId1234',
{"id": "1234", "status": "RELEASED", "foo": "bar"})

Сейчаспервый работает правильно, но второй get возвращает мне это сообщение об ошибке:

fetch-mock.js: 187 Uncaught TypeError: Неверный статус RELEASED передан объекту ответа.Чтобы ответить с помощью объекта JSON, который имеет статус в качестве свойства, присвойте объект body, например {{body): {"status: "istered"}}

У меня есть предположение, что я не могу смутитькакой-то ответ, который содержит статус, потому что это в некотором роде зарезервированный атрибут для кодов статуса, но я не совсем уверен, и я не могу найти никаких подобных ошибок в Интернете.

1 Ответ

0 голосов
/ 22 февраля 2019

Для второго запроса fetchMock предполагается, что status является одним из стандартных кодов, представленных как целое число.Согласно документации, конфигурация, предоставленная для fetchMock, ожидает следующие параметры

Если объект содержит только свойства из числа перечисленных ниже, он используется для настройки Ответа для возврата

* 1007.*
тело: строка |Объект

Установить тело ответа.Сведения о поведении при передаче объекта см. В разделе «Неконфигурированный объект» нижеприведенных документов.

Сервер ответил нормально {token: 'abcdef'}

Статус: целое число

Установить статус ответа

200, 404, 503

заголовки: Объект

Установить заголовки ответа

{'Content-Type': 'text / html'}

redirectUrl: String

URL-адрес, с которого должен исходить URL-адрес ответа (для имитации следующих указаний)).Также будет установлено значение redirected: true для ответа

throws: Ошибка

Принудительная выборка для возврата обещания, отклоненного со значением throws

new TypeError(«Не удалось получить»)

Однако для пользовательского атрибута статуса вы можете ответить телом

fetchMock.get('glob:*/shipping/myId1234', {
    body: {"id": "1234", "status": "RELEASED", "foo": "bar"}
})
...