Как проверить функцию, которая импортирует хранилище с избыточностью?
Вот функция, которая импортирует избыточное хранилище.
//getLabel.js
import store from '../store';
const getLabel = (label) => {
let labels = store.getState().labels;
if (!labels) return label;
//...do some calculations
return result;
};
Вот мой юнит тест
// getLabel.test.js
import getLabel from './getLabel';
import { createMockStore } from 'redux-test-utils';
let mockLabel = {
add_filter: {
en: "Add Filter",
cn: "添加過濾器"
}
}
let mockLabels = {
labels: {
language: "en",
label: mockLabel
}
};
let store = createMockStore(mockLabels);
const action = {
type: 'GET_LABELS',
labels: mockLabels
};
describe('example', () => {
it('works', () => {
store.dispatch(action);
expect(store.getAction(action.type)).toEqual(action);
expect(store.getActions()).toEqual([action]);
expect(store.isActionDispatched(action)).toBe(true);
expect(store.isActionTypeDispatched(action.type)).toBe(true);
expect(store.getState()).toBe(mockLabels);
expect(getLabel('This label does not exist')).toBe('This label does not exist');
expect(getLabel('add filter')).toBe('Add Filter');
});
});
Последний тест не пройден, поскольку используемое хранилище импортировано в getLabel.js