Я пытаюсь написать тест на интеграцию с избыточностью. Мой тест успешно пройден, однако я получаю сообщение:
console.error node_modules / redux / lib / utils / warning.js: 14
В аргументе preloadedState передано неожиданное ключевое слово «word». Ожидается найти один из известных ключей редуктора вместо этого:
"Джотто", "маршрутизатор". Неожиданные ключи будут игнорироваться.
Мне кажется, что мой createStore и корневой редуктор выглядят нормально. Есть ли что-то, что мне нужно изменить, чтобы испортить это предварительно загруженное состояние? Вы можете найти сценарии ниже. Спасибо!
jottoRedux.test.js:
import {createStore, applyMiddleware} from 'redux';
import thunkMiddleware from 'redux-thunk';
import {routerMiddleware} from 'connected-react-router';
import rootReducer from 'reducers/rootReducer';
import {initialState} from './jottoReducer';
import {createBrowserHistory} from 'history';
export const history = createBrowserHistory();
const middleware = applyMiddleware(routerMiddleware(history), thunkMiddleware);
export const storeFactory = () =>
createStore(rootReducer(createBrowserHistory()), {...initialState}, middleware);
export const setWord = (word) => ({
type: 'SET_WORD',
word,
});
describe('testing SET_WORD action', () => {
let store;
beforeEach(() => {
store = storeFactory();
});
test('state is updated correctly for an unsuccessful guess', () => {
store.dispatch(setWord('foo'));
const expectedState = {
...initialState,
word: 'foo',
};
const newState = store.getState().jotto;
expect(newState).toEqual(expectedState);
});
});
jottoReducer.js:
export const initialState = {
word: null,
};
const jotto = (state = initialState, action) => {
switch (action.type) {
case 'SET_WORD':
return {
...state,
word: action.word,
};
default:
return state;
}
};
export default jotto;
rootReducer:
import {combineReducers} from 'redux';
import {connectRouter} from 'connected-react-router';
import jotto from './jottoReducer';
export default (historyObject) => combineReducers({
jotto,
router: connectRouter(historyObject),
});