2016-05-09 2 views
1

Я пытался сделать тест асинхронных действий, но не несчастными :(Redux Асинхронного тест с Webpack + кармой + и т.д.

тест в вопросе это один: https://github.com/persocon/destiny-weekly/blob/test/test/actions/index.spec.jsx

enter image description here

Я м получают это сообщение об ошибке:

1) заполнить GET_OPTIONS при извлечении всех опций осуществляются ASync действия унда efined не является объектом (оценка «store.dispatch (actions.getOptions()). then») /Users/persocon/Projects/destiny-weekly/test/test.bundle.js:14669:42 < - webpack:///test/actions/index.spec.jsx:49:7

и я понятия не имею, что это значит, если бы это помогло, я больше смущаюсь, чем когда-либо.

UPDATE

пришлось осуществить выборку на действия сам, а не в $ .get я использую, но теперь я получаю новую ошибку, указывая на мое действие: v даже работает в браузере:

1) заполнить GET_OPTIONS при извлечении всех опций осуществляются ASync действия не удается найти переменные: принести /Users/persocon/Projects/destiny-weekly/test/test.bundle.js:42473:9 < - webpack: ///src/app/javascript/actions/index.jsx: 32: 9 /Users/persocon/Projects/destiny-weekly/test/test.bundle.js:15691:23 < - webpack: ///~/redux-thunk/lib/index.js: 12: 0 /Пользователи/persocon /Projects/destiny-weekly/test/test.bundle.js:14669:20 < - WebPack: ///test/actions/index.spec.jsx: 48: 19

UPDATE 2 Действие код:

const setOptions = (result) => { 
return { 
    type: 'GET_OPTIONS', 
    options: result 
} 
} 

const getOptions =() => { 


return dispatch => { 
    dispatch(startLoading()) 
    return fetch('/api/selectActivity') 
      .then(response => response.json()) 
      .then(json => { 
       dispatch(doneLoading()); 
       json.unshift({advisorTypeCategory: "Selecione Uma Atividade", identifier: "", disabled: "disabled"}); 
       dispatch(setOptions(json)); 
      } 
     ) 
} 
} 
+0

Я вижу опечатку здесь: https://github.com/persocon/destiny-weekly/blob/test/test/actions/index.spec.jsx#L16 – 4m1r

+0

где? что? D: –

+0

ах, неважно, это какой-то фанки es6 auto-assign, с которым я не знаком. В противном случае, вы уверены, что вы отправляете асинхронное действие? – 4m1r

ответ

1

Ya, The Async Action Creators Пример использует «выборку», которая немного надуманна, но должна работать теоретически. Одним простым решением может быть его реализация с помощью этого isomorphic fetch library. Удачи!

1

решение было реализовать Изоморфная Fetch

Потому что как 4m1r сказал, что это была надуманная функция и не удалось найти.