Извлечение Redwex-API-Middleware не определяется - PullRequest
0 голосов
/ 02 января 2019

Я недавно обновил redux-api-middleware с 2.3.0 до 3.0.1 При выполнении моих тестов с jest@22.2.1 я получаю это ReferenceError:

ReferenceError: fetch is not defined

  19 | export function sortPolicyChain (payload: Array<ChainPolicy>): SortPolicyChainAction {
  20 |   return { type: 'SORT_POLICY_CHAIN', payload }
> 21 | }
  22 |
  23 | export type UpdatePolicyInChainAction = { type: 'UPDATE_POLICY_IN_CHAIN', policyConfig: ChainPolicy }
  24 | export function updatePolicyInChain (policyConfig: ChainPolicy): UpdatePolicyInChainAction {

  at Object.<anonymous> (node_modules/redux-api-middleware/lib/index.cjs.js:404:3)
  at Object.<anonymous> (app/javascript/src/Policies/actions/PolicyChain.jsx:21:27)
  at Object.<anonymous> (spec/javascripts/Policies/actions/PolicyChain.spec.jsx:3:20)

Трассировка стека указывает на эту строку в PolicyChain.jsx :

export function fetchChain (serviceId: string): RSSAAction {
  return {
    [RSAA]: {
      endpoint: `/admin/api/services/${serviceId}/proxy/policies.json`,
      method: 'GET',
      credentials: 'same-origin',
      types: [REQUEST, SUCCESS, FAILURE]
    }
  }
}

В соответствии с документацией здесь :

Если предусмотрено, опция выборки должна быть функцией, которая соответствуетв Fetch API. В противном случае будет использоваться глобальная выборка.

Но похоже, что глобальная выборка не может быть найдена.Есть идеи?

Кодовая база может быть найдена в github .

1 Ответ

0 голосов
/ 04 января 2019

Это происходит потому, что Jest работает внутри Node.js, который не имеет глобального fetch(). Вы можете исправить это, установив isomorphic-fetch и добавив его в свой Jest setupFiles:

require('isomorphic-fetch');

...