Мне нужна помощь в тестировании, использующее document.location. Я запускаю реакцию/сокращение + синус/мокко. Вот мои действия:Функция тестирования с document.location
export function importFile(file) {
return (dispatch) => {
dispatch(importFile());
return jQuery.post('/api/import/', {file}).done((data) => {
window.location = `/edit/${data.id}`;
}).fail((err) => {
return dispatch(importFileError(err));
});
};
}
Если и запустить мой тест в командной строке - я не могу проверить, существует ли перенаправление на страницу после done
, но если я запускаю мой тест в браузере я был перенаправить и все другие тесты были отброшены. Вот мой тест:
it('should create an action to upload import file', (done) => {
const id = '123';
const file = 'testname';
const server = sinon.fakeServer.create();
const expectedActions = [
{type: actions.IMPORT_FILE}
];
const store = mockStore({}, expectedActions, done);
store.dispatch(actions.importFileUpload(file));
server.respondWith([201, { 'Content-Type':'application/json' }, `{"id":"${id}","version":12}`]);
window.XMLHttpRequest = sinon.useFakeXMLHttpRequest();
server.respond();
});
Что такое лучший способ проверить функции, как это? Предотвратить перенаправление или использовать оболочку для функции перенаправления? Спасибо.