diff --git a/public/test/core/redux/reducerTester.ts b/public/test/core/redux/reducerTester.ts index 08fe298a399..be41c8e4df9 100644 --- a/public/test/core/redux/reducerTester.ts +++ b/public/test/core/redux/reducerTester.ts @@ -1,9 +1,10 @@ import { Reducer } from 'redux'; -import { PayloadAction } from '@reduxjs/toolkit'; +import { PayloadAction, Action } from '@reduxjs/toolkit'; +import { cloneDeep } from 'lodash'; export interface Given { givenReducer: ( - reducer: Reducer>, + reducer: Reducer | Action>, state: State, showDebugOutput?: boolean, disableDeepFreeze?: boolean @@ -11,7 +12,7 @@ export interface Given { } export interface When { - whenActionIsDispatched: (action: PayloadAction) => Then; + whenActionIsDispatched: (action: PayloadAction | Action) => Then; } export interface Then { @@ -66,9 +67,9 @@ export const reducerTester = (): Given => { disableDeepFreeze = false ): When => { reducerUnderTest = reducer; - initialState = { ...state }; - if (!disableDeepFreeze) { - initialState = deepFreeze(initialState); + initialState = cloneDeep(state); + if (!disableDeepFreeze && (typeof state === 'object' || typeof state === 'function')) { + deepFreeze(initialState); } showDebugOutput = debug;