Commit f5916260 by Giordano Ricci Committed by GitHub

Chore: Allow reducerTester to work with every data type & payload-less actions (#29241)

parent 6838af5c
import { Reducer } from 'redux';
import { PayloadAction } from '@reduxjs/toolkit';
import { PayloadAction, Action } from '@reduxjs/toolkit';
import { cloneDeep } from 'lodash';
export interface Given<State> {
givenReducer: (
reducer: Reducer<State, PayloadAction<any>>,
reducer: Reducer<State, PayloadAction<any> | Action<any>>,
state: State,
showDebugOutput?: boolean,
disableDeepFreeze?: boolean
......@@ -11,7 +12,7 @@ export interface Given<State> {
}
export interface When<State> {
whenActionIsDispatched: (action: PayloadAction<any>) => Then<State>;
whenActionIsDispatched: (action: PayloadAction<any> | Action<any>) => Then<State>;
}
export interface Then<State> {
......@@ -66,9 +67,9 @@ export const reducerTester = <State>(): Given<State> => {
disableDeepFreeze = false
): When<State> => {
reducerUnderTest = reducer;
initialState = { ...state };
if (!disableDeepFreeze) {
initialState = deepFreeze(initialState);
initialState = cloneDeep(state);
if (!disableDeepFreeze && (typeof state === 'object' || typeof state === 'function')) {
deepFreeze(initialState);
}
showDebugOutput = debug;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment