mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2024-11-22 09:36:43 +03:00
Merge pull request #120 from ellbee/getState_returns_last_non_undefined
Return last non-undefined state from getState() #106
This commit is contained in:
commit
730860de0a
|
@ -203,6 +203,7 @@ function unliftState(liftedState) {
|
|||
* Unlifts the DevTools store to act like the app's store.
|
||||
*/
|
||||
function unliftStore(liftedStore, reducer) {
|
||||
let lastDefinedState;
|
||||
return {
|
||||
...liftedStore,
|
||||
devToolsStore: liftedStore,
|
||||
|
@ -211,7 +212,11 @@ function unliftStore(liftedStore, reducer) {
|
|||
return action;
|
||||
},
|
||||
getState() {
|
||||
return unliftState(liftedStore.getState());
|
||||
const state = unliftState(liftedStore.getState());
|
||||
if (state !== undefined) {
|
||||
lastDefinedState = state;
|
||||
}
|
||||
return lastDefinedState;
|
||||
},
|
||||
getReducer() {
|
||||
return reducer;
|
||||
|
|
|
@ -197,6 +197,22 @@ describe('devTools', () => {
|
|||
expect(spy.calls[0].arguments[0]).toMatch(
|
||||
/ReferenceError/
|
||||
);
|
||||
|
||||
spy.restore();
|
||||
});
|
||||
|
||||
it('returns the last non-undefined state from getState', () => {
|
||||
let spy = spyOn(console, 'error');
|
||||
|
||||
store.dispatch({ type: 'INCREMENT' });
|
||||
store.dispatch({ type: 'DECREMENT' });
|
||||
store.dispatch({ type: 'INCREMENT' });
|
||||
store.dispatch({ type: 'INCREMENT' });
|
||||
expect(store.getState()).toBe(2);
|
||||
|
||||
store.replaceReducer(counterWithBug);
|
||||
expect(store.getState()).toBe(1);
|
||||
|
||||
spy.restore();
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue
Block a user