Проблема издевательства над Redux Store с помощью Jest / redux-mock-store - PullRequest
0 голосов
/ 17 января 2020

Я пытался смоделировать избыточное хранилище, которое находится внутри модуля зависимостей, но безуспешно, как показано ниже:

//configStore.js
const store = createStore(
    combineReducers(reducers),
    undefined,
    composeEnhancers(
        autoRehydrate(),
        applyMiddleware(...middlewares)
        // other store enhancers if any
    )
);


export default store;

Это хранилище используется в таком файле:

//module
import store from '../config/configStore';

export function reSeat() {

        let seat = store.getState().travelers[0].accommodations[0];

        //some logic
       store.dispatch(API_CALL);
       store.dispatch(RE_SEAT);

}

Мой тест:

import store from "../../../app/config/configStore";
import * as module from '../../../app/actions/module';
import configureStore from 'redux-mock-store'


jest.mock('../../../app/config/configStore', () => {
    return {
        __esModule: true,
        default: configureStore([])({})
    };
 });


describe('module action', () => {

     console.log(store.getState()); 
     console.log(module.reseat());

   //it will print the 'real' store initial state based on the reducers on both cases :-(

...
...
...

Я пытался следовать инструкциям по этой ссылке: https://remarkablemark.org/blog/2018/06/28/jest-mock-default-named-export/

Похоже, мой mock.jest isn ' Т звонят вообще. У кого-нибудь есть идеи по этому поводу?

1 Ответ

0 голосов
/ 19 января 2020

Я нашел проблему. Похоже, что добавление преобразователя в конфигурацию jest (package. json) не позволяло .mock работать, не знаю почему.

Я только что удалил преобразователь. js, и он работал:

 "transform": {
      "^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js", //removed this line
      "^.+\\.jsx?$": "babel-jest"
    }
...