Pracuję nad aplikacją Redux & próbując utworzyć szpiega używając Jasmine na domyślnej wyeksportowanej funkcji ES6. Podjąłem kilka prób szpiegowania tej funkcji, w tym za pomocą importu wieloznacznego, aby uzyskać dostęp do "domyślnej" właściwości importu, ale nic, co wypróbowałem, nie zadziałało do tej pory. Poniżej znajduje się przykład, w którym chciałbym przetestować widgets.js
i szpiegować funkcję widżetu. Czy istnieje sposób, aby to osiągnąć bez konieczności zmiany sposobu eksportowania funkcji z widget.js
?Jak używać Jasmine do szpiegowania funkcji importowanej za pomocą domyślnego eksportu ES6?
widget.js
import { Map } from 'immutable';
import { CREATE_WIDGET } from 'actions';
const initialState = Map({
id: undefined,
name: undefined
});
export default function widget(state=initialState, action) {
switch (action.type) {
case CREATE_WIDGET:
return state.update((widget) => widget.merge(action.widget));
default:
return state;
}
}
widgets.js
import { OrderedMap } from 'immutable';
import { CREATE_ROOM } from 'actions';
import widget from './widget';
const initialState = OrderedMap();
export default function widgets(state=initialState, action={}) {
switch (action.type) {
case CREATE_ROOM:
return state.set(action.widget.id, widget(undefined, action));
default:
return state;
}
}
Czy masz sposób robienia tego, co chcesz zrobić z nazwanym eksportem? W rzeczywistości nie są aż tak różne. – Bergi
Nie, nie mam. Powiedziano mi o tej wtyczce, jednak nie byłem w stanie jej poprawnie uruchomić i mam wrażenie, że mogę wyeksportować funkcję jako metodę do obiektu. – evkline