ax ios -mock-adapter error Ошибка: в ответе на предпечатную проверку указан неверный код состояния HTTP 403 - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь написать модульный тест, издеваясь над ios вызовами API. Вот конфигурация адаптера ax ios -mock

import MockAdapter from 'axios-mock-adapter';
import axios from 'axios';

const mock = new MockAdapter(axios);

it('Get User details without errors', async () => {
  const mockData =
    '{"userID": 1234, ...}}';

  const url = '/user/id/560/';
//const url = 'https://example.com/searchuser/user/id/560/'; Also tried with this
  mock.onGet(url).reply(200, mockData);

Когда я запускаю действие, он вызывает этот API

GET: "https://example.com/searchuser/user/id/560/"

Вот полный журнал ошибок

 console.error node_modules/jest-environment-jsdom/node_modules/jsdom/lib/jsdom/virtual-console.js:29
    Error: Error: Response for preflight has invalid HTTP status code 403
        at Object.dispatchError (C:\Users\lokeshp\branches\nrrui\node_modules\jest-environment-jsdom\node_modules\jsdom\lib\jsdom\living\xhr-utils.js:65:19)
        at EventEmitter.client.on.err (C:\Users\lokeshp\branches\nrrui\node_modules\jest-environment-jsdom\node_modules\jsdom\lib\jsdom\living\xmlhttprequest.js:676:20)
        at EventEmitter.emit (events.js:187:15)
        at Request.preflightClient.on.resp (C:\Users\lokeshp\branches\nrrui\node_modules\jest-environment-jsdom\node_modules\jsdom\lib\jsdom\living\xhr-utils.js:376:16)
        at Request.emit (events.js:182:13)
        at Request.onRequestResponse (C:\Users\lokeshp\branches\nrrui\node_modules\request\request.js:1066:10)
        at ClientRequest.emit (events.js:182:13)
        at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:556:21)
        at HTTPParser.parserOnHeadersComplete (_http_common.js:109:17)
        at TLSSocket.socketOnData (_http_client.js:442:20) undefined

Может ли кто-нибудь помочь мне понять, как я могу также высмеивать предпечатные вызовы? Мне нужно использовать jest с jsdom, так как другие модульные тесты должны имитировать поведение браузера c. Искал много, но не могу найти решение.

1 Ответ

0 голосов
/ 26 марта 2020

Я допустил ошибку в издевательском топоре ios. Я создал экземпляр axio для выполнения вызовов API и пытался смоделировать экземпляр ios по умолчанию в указанном выше вопросе. Так что не было издеваться После решить проблему.

import AxiosAPIInstance from '/api/instance';
const mock = new MockAdapter(AxiosAPIInstance );
.....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...