В аргументе preloadedState передан неожиданный ключ - PullRequest
1 голос
/ 15 апреля 2019

Я пытаюсь написать тест на интеграцию с избыточностью. Мой тест успешно пройден, однако я получаю сообщение:

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),
});

1 Ответ

1 голос
/ 15 апреля 2019

Попробуйте это:

export const storeFactory = () =>
  createStore(rootReducer(createBrowserHistory()), { jotto: initialState }, middleware);
...