From f5916260bd6ad1887df1ee2c1dbd5248ae6bc9ef Mon Sep 17 00:00:00 2001 From: Giordano Ricci Date: Fri, 20 Nov 2020 13:11:52 +0000 Subject: [PATCH] Chore: Allow reducerTester to work with every data type & payload-less actions (#29241) --- public/test/core/redux/reducerTester.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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;