Exemple #1
1
export function configureStore(initialState = {}, debug = IS_DEVELOPMENT) {
  const envMiddlewares = {
    dev: [thunk.withExtraArgument(axios), routerMiddleware(history)],
    prod: [thunk.withExtraArgument(axios), routerMiddleware(history)],
  }

  const storeEnhancers = debug
    ? compose(
        applyMiddleware(...envMiddlewares.dev),
        window.devToolsExtension ? window.devToolsExtension() : f => f
      )
    : compose(applyMiddleware(...envMiddlewares.prod))

  const store = createStore(connectRouter(history)(rootReducer), initialState, storeEnhancers)

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('./redux', () => {
      const nextRootReducer = require('./redux/index').rootReducer // eslint-disable-line
      store.replaceReducer(nextRootReducer)
    })
  }

  return store
}
Exemple #2
0
  createStore(rootReducer, initialState = {}) {
    const middlewares = [
      thunk.withExtraArgument({ app: this }),
      createAppendActionMiddleware({
        key: 'appName',
        value: this.getOption('name')
      })
    ];

    if (process.env.NODE_ENV !== 'production') {
      const createLogger = require('redux-logger'); // eslint-disable-line

      middlewares.push(createLogger());
    }

    this.options.store = createStore(
      rootReducer,
      initialState,
      compose(
        applyMiddleware(...middlewares)
      )
    );

    return this.options.store;
  }
export default function configureStore(initialState) {
  const store = createStore(rootReducer, initialState,
    applyMiddleware(thunk.withExtraArgument({room, socketWrapper}))
  );
  room.setDispatch(store.dispatch);
  socketWrapper.setDispatch(store.dispatch);
  return store;
}
describe('Videos actions', () => {

  // Test async action
  const middleware = [thunk.withExtraArgument(mockApi)];
  const mockStore =  configureMockStore(middleware);


  it('should create LOAD_VIDEOS_SUCCESS when loading videos', (done) => {

    const expectedActions = {
      type: types.LOAD_VIDEOS_SUCCESS,
      videos: [{_id: '1', name: 'video1', ratings: [1,2,3]}]
    };

    const store = mockStore({videos: []}, [expectedActions], done);
    store.dispatch(videoActions.loadVideos({skip: 5, limit: 5})).then(() => {
      const actions = store.getActions();
      expect(actions[0].type).toEqual(types.LOAD_VIDEOS_SUCCESS);
      expect(actions[0].videos.length).toEqual(1);
      expect(actions[0].videos[0].name).toEqual('video1');
      done();
    });
  });

  it('should create VIDEO_SUCCESS when loading single video', (done) => {

    const expectedActions = {
      type: types.VIDEO_SUCCESS,
      video: {_id: '1', name: 'video1'}
    };

    const store = mockStore({videos: []}, [expectedActions], done);
    store.dispatch(videoActions.getVideo(1)).then(() => {
      const actions = store.getActions();
      expect(actions[0].type).toEqual(types.VIDEO_SUCCESS);
      expect(actions[0].video.name).toEqual('video1');
      done();
    });
  });

  it('should create RATING_SUCCESS when rate a video', (done) => {

    const expectedActions = {
      type: types.RATING_SUCCESS,
      video: {_id: '1', name: 'video1', ratings: [1,2,3]}
    };

    const store = mockStore({videos: []}, [expectedActions], done);
    store.dispatch(videoActions.clickStar(1, 3)).then(() => {
      const actions = store.getActions();
      expect(actions[0].type).toEqual(types.RATING_SUCCESS);
      expect(actions[0].video.name).toEqual('video1');
      expect(actions[0].video.ratings.length).toEqual(3);
      done();
    });
  });
});
Exemple #5
0
export const licenseManagementStore = (initialState = {}, services = {}) => {
  const enhancers = [ applyMiddleware(thunk.withExtraArgument(services)) ];

  window.__REDUX_DEVTOOLS_EXTENSION__ && enhancers.push(window.__REDUX_DEVTOOLS_EXTENSION__());
  return createStore(
    licenseManagement,
    initialState,
    compose(...enhancers)
  );
};
Exemple #6
0
export default function getStore(initialState, {cookies, request}) {
    return createStore(
        reducer, 
        initialState,
        compose(
            applyMiddleware(
                thunk.withExtraArgument({cookies, request})
            ),
            typeof window === 'object' && typeof window.devToolsExtension !== 'undefined' ? window.devToolsExtension() : f => f
        )
    );
}
    const createComponent = (services, dispatch = sinon.spy()) => {
        const store = createStore(
            reducers,
            applyMiddleware(thunk.withExtraArgument(services))
        );

        return (
            <Provider store={store}>
                <AddEntity dispatch={dispatch} />
            </Provider>
        );
    };
    const createComponent = () => {
        const services = { fetchEntities: () => Promise.resolve([]) };
        const store = createStore(
            reducers,
            applyMiddleware(thunk.withExtraArgument(services))
        );

        return (
            <Provider store={store}>
                <Routes />
            </Provider>
        );
    };
const configureStore = initialState => {
  let middlewares = [thunk.withExtraArgument(api)];

  if (process.env.NODE_ENV !== 'production') {
    middlewares = [...middlewares, logger];
  }

  const store = createStore(
    reducers,
    initialState,
    applyMiddleware(...middlewares)
  );

  return store;
};
export default function configureStore(initialState, helpersConfig) {
	const helpers = createHelpers(helpersConfig);
	const middleware = [thunk.withExtraArgument(helpers)];

	let enhancer;

	if (__DEV__) {
		if (process.env.BROWSER) {
			const createLogger = require('redux-logger');
			middleware.push(createLogger({
				collapsed: true,
			}));
		} else {
			// Server side redux action logger
			middleware.push(store => next => action => { // eslint-disable-line no-unused-vars
				//const payload = JSON.stringify(action.payload);
				//console.log(` * ${action.type}: ${payload}`); // eslint-disable-line no-console
				return next(action);
			});
		}

		// https://github.com/zalmoxisus/redux-devtools-extension#redux-devtools-extension
		let devToolsExtension = f => f;
		if (process.env.BROWSER && window.devToolsExtension) {
			devToolsExtension = window.devToolsExtension();
		}

		enhancer = compose(
			applyMiddleware(...middleware),
			devToolsExtension,
		);
	} else {
		enhancer = applyMiddleware(...middleware);
	}

	// See https://github.com/rackt/redux/releases/tag/v3.1.0
	const store = createStore(rootReducer, Immutable.fromJS(initialState), enhancer);

	// Hot reload reducers (requires Webpack or Browserify HMR to be enabled)
	if (__DEV__ && module.hot) {
		module.hot.accept('../reducers', () =>
			store.replaceReducer(require('../reducers').default)
		);
	}

	return store;
}
Exemple #11
0
  createStore(rootReducer, initialState = {}) {
    this.options.store = createStore(
      rootReducer,
      initialState,
      compose(
        applyMiddleware(
          thunk.withExtraArgument({ app: this }),
          createAppendActionMiddleware({
            key: 'appName',
            value: this.getOption('name')
          }),
          createLogger() // @TODO: load it in DEV environment only
        )
      )
    );

    return this.options.store;
  }
Exemple #12
0
export default () => {
  // ======================================================
  // Middleware Configuration
  // ======================================================
  const middleware = [thunk.withExtraArgument(socket)];

  // ======================================================
  // Store Enhancers
  // ======================================================
  const enhancers = [responsiveStoreEnhancer];

  let composeEnhancers = compose;

  if (__DEV__) {
    const composeWithDevToolsExtension = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;
    if (typeof composeWithDevToolsExtension === 'function') {
      composeEnhancers = composeWithDevToolsExtension
    }
  }

  // ======================================================
  // Store Instantiation and HMR Setup
  // ======================================================
  const store = createStore(
    makeRootReducer,
    composeEnhancers(
      applyMiddleware(...middleware),
      ...enhancers
    )
  );
  store.asyncReducers = {};

  // To unsubscribe, invoke `store.unsubscribeHistory()` anytime
  store.unsubscribeHistory = browserHistory.listen(updateLocation(store));

  if (module.hot) {
    module.hot.accept('./mainReducer', () => {
      const reducers = require('./mainReducer').default;
      store.replaceReducer(reducers(store.asyncReducers))
    })
  }

  return store
}
export default (initialState = { firebase: {} }) => {
  // initialize firebase
  const firebase = RNFirebase.initializeApp(reactNativeFirebaseConfig);

  const middleware = [
     // make getFirebase available in third argument of thunks
    thunk.withExtraArgument({ getFirebase }),
  ];

  const store = createStore(
    makeRootReducer(),
    initialState, // initial state
    compose(
     reactReduxFirebase(firebase, reduxFirebaseConfig), // pass initialized react-native-firebase app instance
     applyMiddleware(...middleware)
    )
  )
  return store
}
export default function storeFactory(diContainer) {
    const initialState = {
        urlShortener: Immutable.fromJS({
            isLoading: false,
            inputUrl: '',
            outputUrl: null,
            error: null
        })
    };
    let middlewares = [
        thunk.withExtraArgument(diContainer),
        routerMiddleware(diContainer.history)
    ];
    middlewares = compose(
        applyMiddleware(...middlewares),
        window.devToolsExtension ? window.devToolsExtension() : (f) => f
    );
    return createStore(reducer, initialState, middlewares);
}
export default function configureStore(initialState, config) {
  const helpers = createHelpers(config);
  const { apolloClient } = config;

  const middleware = [
    thunk.withExtraArgument(helpers),
    apolloClient.middleware(),
  ];

  let enhancer;

  if (__DEV__) {
    middleware.push(createLogger());

    // https://github.com/zalmoxisus/redux-devtools-extension#redux-devtools-extension
    let devToolsExtension = f => f;
    if (process.env.BROWSER && window.devToolsExtension) {
      devToolsExtension = window.devToolsExtension();
    }

    enhancer = compose(applyMiddleware(...middleware), devToolsExtension);
  } else {
    enhancer = applyMiddleware(...middleware);
  }

  const rootReducer = createRootReducer({
    apolloClient,
  });

  // See https://github.com/rackt/redux/releases/tag/v3.1.0
  const store = createStore(rootReducer, initialState, enhancer);

  // Hot reload reducers (requires Webpack or Browserify HMR to be enabled)
  if (__DEV__ && module.hot) {
    module.hot.accept('../reducers', () =>
      // Don't forget to remove `()` if you change reducers back to normal rootReducer.
      // eslint-disable-next-line global-require
      store.replaceReducer(require('../reducers').default({ apolloClient })),
    );
  }

  return store;
}
const configureStore = (initialState) => {
  const store = createStore(
    rootReducer,
    initialState,
    applyMiddleware(
      thunk.withExtraArgument({ axios }),
      routerMiddleware(browserHistory)
    )
  );

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers', () => {
      const nextRootReducer = require('../reducers').default;
      store.replaceReducer(nextRootReducer);
    });
  }

  return store;
};
Exemple #17
0
export const createMockStore = (initialState, mapOfParamsForCallback) => {
  const socketMock = requestMock(mapOfParamsForCallback);
  const mockStoreFactory = configureMockStore([thunk.withExtraArgument(socketMock)]);
  const mockStore = mockStoreFactory(initialState);

  mockStore.socketCalledWith = (...expectedArgs) => {
    const matchedCalls = socketMock.calls.filter(calledArgs =>
      deepEqual(calledArgs, expectedArgs));

    if (matchedCalls.length === 0) {
      throw new Error("socketio request not called with args " + expectedArgs);
    }
  };
  mockStore.socketNotCalled = () => {
    if (socketMock.calls.length > 0) {
      throw new Error("socketio request should never be called, but it was called with args " + socketMock.calls);
    }
  };
  mockStore.socketCalledWith = mockStore.socketCalledWith.bind(mockStore);
  mockStore.socketNotCalled = mockStore.socketNotCalled.bind(mockStore);
  return mockStore;
};
  app.get('*', asyncCatch(async (req: $Request, res) => {
    const store: Store<State, BatchedAction> = createStore(
      reducer,
      defaultState(stores.positionEligibilityStore),
      applyMiddleware(batcher, thunk.withExtraArgument(api)),
    );

    await store.dispatch(selectLoggedInUserId(readAuthTokenFromCookies(req)));
    await store.dispatch(translateUrl(req.path, req.query) || throw404(req.path));

    const jsBundleName: string = bundles.js_bundle_name || 'public/bundle.js';
    const cssBundleName: string = bundles.css_bundle_name || 'public/bundle.css';
    res.send(
      layout(
        getTitle(store.getState()),
        renderToString(<Provider store={store}><App /></Provider>),
        store.getState(),
        jsBundleName,
        cssBundleName,
      ),
    );
  }));
Exemple #19
0
export function configureStore (initialState) {
  let store = createStore(createReducer(), initialState, compose(
    applyMiddleware(
      thunk.withExtraArgument({ axios })
    ),

    process.env.NODE_ENV === 'development' &&
    typeof window === 'object' &&
    typeof window.devToolsExtension !== 'undefined'
      ? window.devToolsExtension()
      : f => f
  ))

  store.asyncReducers = {}

  if (process.env.NODE_ENV === 'development') {
    if (module.hot) {
      module.hot.accept('./createReducer', () => store.replaceReducer(require('./createReducer').default))
    }
  }

  return store
}
Exemple #20
0
import { composeWithDevTools } from 'redux-devtools-extension';
import project from 'reducers/project';
import projectBoard from 'reducers/projectBoard';
import users from 'reducers/users';
import stories from 'reducers/stories';
import pastIterations from 'reducers/pastIterations';
import * as Story from '../models/beta/story';
import * as Task from '../models/beta/task'
import * as ProjectBoard from '../models/beta/projectBoard';
import * as Note from '../models/beta/note';

const dependencies = { Story, ProjectBoard, Note, Task };

const reducer = combineReducers({
  project,
  projectBoard,
  users,
  stories,
  pastIterations
});

const store = createStore(
  reducer, composeWithDevTools(
    applyMiddleware(
      thunk.withExtraArgument(dependencies)
    )
  )
);

export default store;
Exemple #21
0
import promiseMiddleware from 'redux-promise';
import thunkMiddleware from 'redux-thunk';
import loggerMiddleware from './middleware/loggerMiddleware';
import { apolloClient } from './apollo';

// define store middlewares as an array
export default [
  promiseMiddleware,
  thunkMiddleware.withExtraArgument(),
  apolloClient.middleware(),
  loggerMiddleware,
];
Exemple #22
0
import api from './api';
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import reducer from './reducers';


export default createStore(
  reducer, 
  applyMiddleware(thunk.withExtraArgument(api))
);
Exemple #23
0
describe('modules/monod', () => {
  const middlewares = [thunk.withExtraArgument({ db: dbMock })];
  const mockStore = configureMockStore(middlewares);

  const secret = 'secret';

  beforeEach(() => {
    dbMock.reset();
  });

  it('should return the initial state', () => {
    const state = reducer(undefined, {});

    expect(state).to.have.all.keys([
      'offline',
    ]);
  });

  it('can flag the app as online', () => {
    const state = reducer(undefined, actions.isOnline());

    expect(state.offline).to.be.false;
  });

  it('can flag the app as offline', () => {
    const state = reducer(undefined, actions.isOffline());

    expect(state.offline).to.be.true;
  });

  describe('load()', () => {
    it('should dispatch documents.LOAD_DEFAULT when no document id supplied', () => {
      const store = mockStore();

      const expectedActions = [
        { type: documents.LOAD_DEFAULT },
      ];

      store.dispatch(actions.load());

      expect(store.getActions()).to.eql(expectedActions);
    });

    it('should look into the local storage first', () => {
      const store = mockStore();

      const id = '123';
      const content = 'foo';

      dbMock.addDocument(id, encrypt(content, secret));

      return store
        .dispatch(actions.load(id, secret, dbMock))
        .then(() => {
          const triggeredActions = store.getActions();

          // there is also the synchronize() action that is dispatched
          expect(triggeredActions).to.have.length(2);
          expect(triggeredActions[0].type).to.equal(documents.LOAD_SUCCESS);
          expect(triggeredActions[0].document.get('uuid')).to.equal(id);
          expect(triggeredActions[0].document.get('content')).to.equal(content);
        });
    });

    it('should notify user when decryption failed', () => {
      const store = mockStore();

      const id = '123';
      const content = 'foo';

      dbMock.addDocument(id, encrypt(content, secret));

      return store
        .dispatch(actions.load(id, 'bad-secret', dbMock)) // decryption will fail
        .then(() => {
          const triggeredActions = store.getActions();

          expect(triggeredActions).to.have.length(2);
          expect(triggeredActions[0].type).to.equal(NOTIFY);
          expect(triggeredActions[1].type).to.equal(documents.LOAD_DEFAULT);

          expect(dbMock.nbGetItemCall).to.equal(1);
        });
    });

    describe('(API call)', () => {
      beforeEach(() => {
        fauxJax.install();
      });

      afterEach(() => {
        fauxJax.restore();
      });

      it('should fetch the server when not found locally', () => {
        const id = '456';
        const content = 'hello';
        const encrypted = encrypt(content, secret);

        fauxJax.on('request', (request) => {
          request.respond(
            200, { 'Content-Type': 'application/json' },
            JSON.stringify({
              uuid: id,
              content: encrypted,
              last_modified: Date.now(),
            })
          );
        });

        const store = mockStore();

        return store
          .dispatch(actions.load(id, secret, dbMock))
          .then(() => {
            const triggeredActions = store.getActions();

            expect(triggeredActions).to.have.length(3);
            expect(triggeredActions[0].type).to.equal(actions.IS_ONLINE);
            expect(triggeredActions[1].type).to.equal(documents.LOAD_SUCCESS);
            expect(triggeredActions[1].document.get('uuid')).to.equal(id);
            // 3rd action is SYNCHRONIZE
          });
      });

      it('deals with 404 error when document is not stored locally', () => {
        const id = '456';

        fauxJax.on('request', (request) => {
          request.respond(
            404, { 'Content-Type': 'application/json' }
          );
        });

        const store = mockStore();

        return store
          .dispatch(actions.load(id, secret, dbMock))
          .then(() => {
            const triggeredActions = store.getActions();

            expect(triggeredActions).to.have.length(2);
            expect(triggeredActions[0].type).to.equal(NOTIFY);
            expect(triggeredActions[1].type).to.equal(documents.LOAD_DEFAULT);
          });
      });
    });

    it('should notify user when server is unreachable', () => {
      const id = 'not-in-local-db';
      const store = mockStore();

      return store
        .dispatch(actions.load(id, secret, dbMock))
        .then(() => {
          const triggeredActions = store.getActions();

          expect(triggeredActions).to.have.length(3);
          expect(triggeredActions[0].type).to.equal(actions.IS_OFFLINE);
          expect(triggeredActions[1].type).to.equal(NOTIFY);
          expect(triggeredActions[2].type).to.equal(documents.LOAD_DEFAULT);
        });
    });
  });
});
export default (initialState = {}) => {
  // ======================================================
  // Redux + Firebase Config (react-redux-firebase & redux-firestore)
  // ======================================================
  const defaultRRFConfig = {
    userProfile: 'users', // root that user profiles are written to
    updateProfileOnLogin: false, // enable/disable updating of profile on login
    presence: 'presence', // list currently online users under "presence" path in RTDB
    sessions: null, // Skip storing of sessions
    enableLogging: false, // enable/disable Firebase Database Logging
    useFirestoreForProfile: true, // Save profile to Firestore instead of Real Time Database
    useFirestoreForStorageMeta: true, // Metadata associated with storage file uploads goes to Firestore
    onAuthStateChanged: (auth, firebaseInstance, dispatch) => {
      if (auth) {
        // Set auth within error handler
        setErrorUser(auth)
        // Initalize messaging with dispatch
        initializeMessaging(dispatch)
        // Set auth within analytics
        setAnalyticsUser(auth)
      }
    }
  }

  // Combine default config with overrides if they exist (set within .firebaserc)
  const combinedConfig = rrfConfig
    ? { ...defaultRRFConfig, ...rrfConfig }
    : defaultRRFConfig

  // ======================================================
  // Store Enhancers
  // ======================================================
  const enhancers = []

  if (env === 'dev') {
    const devToolsExtension = window.__REDUX_DEVTOOLS_EXTENSION__
    if (typeof devToolsExtension === 'function') {
      enhancers.push(devToolsExtension())
    }
  }

  // ======================================================
  // Middleware Configuration
  // ======================================================
  const middleware = [
    thunk.withExtraArgument(getFirebase)
    // This is where you add other middleware like redux-observable
  ]

  // ======================================================
  // Firebase Initialization
  // ======================================================
  firebase.initializeApp(fbConfig)

  // ======================================================
  // Store Instantiation and HMR Setup
  // ======================================================
  const store = createStore(
    makeRootReducer(),
    initialState,
    compose(
      applyMiddleware(...middleware),
      reduxFirestore(firebase),
      reactReduxFirebase(firebase, combinedConfig),
      ...enhancers
    )
  )

  store.asyncReducers = {}

  if (module.hot) {
    module.hot.accept('./reducers', () => {
      const reducers = require('./reducers').default // eslint-disable-line global-require
      store.replaceReducer(reducers(store.asyncReducers))
    })
  }

  return store
}
Exemple #25
0
import * as schema from '../api/schema';
import api from '../api';
import reducer from './reducer';
import thunk from 'redux-thunk';
import { applyMiddleware, createStore } from 'redux';

export default createStore(reducer, applyMiddleware(thunk.withExtraArgument({ api, schema })));
export default (initialState = {}) => {
  // ======================================================
  // Redux + Firebase Config (react-redux-firebase & redux-firestore)
  // ======================================================
  const defaultRRFConfig = {
    userProfile: 'users', // root that user profiles are written to
    updateProfileOnLogin: false, // enable/disable updating of profile on login
    presence: 'presence', // list currently online users under "presence" path in RTDB
    sessions: null, // Skip storing of sessions
    enableLogging: false // enable/disable Firebase Database Logging
    // profileDecorator: (userData) => ({ email: userData.email }) // customize format of user profile
  }

  // Combine default config with overrides if they exist (set within .firebaserc)
  const combinedConfig = rrfConfig
    ? { ...defaultRRFConfig, ...rrfConfig }
    : defaultRRFConfig

  // ======================================================
  // Store Enhancers
  // ======================================================
  const enhancers = []

  if (env === 'local') {
    const devToolsExtension = window.devToolsExtension
    if (typeof devToolsExtension === 'function') {
      enhancers.push(devToolsExtension())
    }
  }

  // ======================================================
  // Middleware Configuration
  // ======================================================
  const middleware = [
    thunk.withExtraArgument(getFirebase)
    // This is where you add other middleware like redux-observable
  ]

  // ======================================================
  // Firebase Initialization
  // ======================================================
  firebase.initializeApp(fbConfig)

  // ======================================================
  // Store Instantiation and HMR Setup
  // ======================================================
  const store = createStore(
    makeRootReducer(),
    initialState,
    compose(
      applyMiddleware(...middleware),
      reactReduxFirebase(firebase, combinedConfig),
      ...enhancers
    )
  )

  store.asyncReducers = {}

  if (module.hot) {
    module.hot.accept('./reducers', () => {
      const reducers = require('./reducers').default
      store.replaceReducer(reducers(store.asyncReducers))
    })
  }

  return store
}
Exemple #27
0
import { createStore, applyMiddleware } from 'redux';
import thunkMiddleware from 'redux-thunk';
import rootReducer from './reducers';
import {batchActions, enableBatching} from 'redux-batched-actions';
import axios from 'axios';

let api = axios.create({
    baseURL: 'http://api.edtr.dev/api/v1',
    timeout: 30000
})

const createStoreWithMiddleware = applyMiddleware(
  thunkMiddleware.withExtraArgument({ api, batchActions })
)(createStore);

export default function configureStore(initialState = {}) {
    const store = createStoreWithMiddleware(enableBatching(rootReducer), initialState);

    return store;
}
            return state;
    }
}

let unauthorized = false;

function defaultErrorHandler(err, res) {
    if(res.unauthorized) {
        unauthorized = true;
    }
}

const request = new ReduxThunkRequest({baseUrl: 'http://localhost:8080', defaultErrorHandler});


const store = createStore(reducer, applyMiddleware(thunk.withExtraArgument({request})));

describe('Test', function() {
    beforeEach(function() {
        store.dispatch(reset());
        unauthorized = false;
        request.reset();
    });

    it('Set value {waitServer : false}', function (done) {
        store.dispatch((dispatch, getState, {request}) => {
            const r = request('/').then(({value}) => dispatch({
                type : UPDATE_VALUE,
                value
            }));
            assert(false === request.isWaited());
Exemple #29
0
  }
}

const loggerMiddleware = createLogger({
  collapsed: true,
  predicate: predicate,
  logger: logger,
  // We're turning off all colors here because the formatting chars obscure the
  // content server-side.
  colors: {
    title: false,
    prevState: false,
    action: false,
    nextState: false,
    error: false
  }
});

const store = createStore(
  appReducer,
  hydrateStore(),
  applyMiddleware(
    thunkMiddleware.withExtraArgument({ getIntl }),
    loggerMiddleware
  )
);

logger.setReduxDispatch(store.dispatch);

export default store;
Exemple #30
0
import configureMockStore from 'redux-mock-store';
import reduxThunk from 'redux-thunk';
import { middleware as reduxPack, KEY } from 'redux-pack';
import api from './api';

export const makeReduxPackAction = (lifecycle, { type, payload, meta = {} }) => ({
  type,
  payload,
  meta: {
    ...meta,
    [KEY.LIFECYCLE]: lifecycle,
  },
});

export const removeReduxPackTransaction = (action) => ({
  ...action,
  meta: {
    ...action.meta,
    'redux-pack/TRANSACTION': undefined,
  },
});

export const mockStore = configureMockStore([
  reduxThunk.withExtraArgument({ api }),
  reduxPack,
]);