diff --git a/src/array/reducer/enable.spec.ts b/src/array/reducer/enable.spec.ts index e1264924..5bd695a8 100644 --- a/src/array/reducer/enable.spec.ts +++ b/src/array/reducer/enable.spec.ts @@ -1,4 +1,5 @@ import { EnableAction } from '../../actions'; +import { createFormArrayState } from '../../state'; import { enableReducer } from './enable'; import { FORM_CONTROL_ID, @@ -49,4 +50,15 @@ describe(`form array ${enableReducer.name}`, () => { const resultState = enableReducer(state, new EnableAction(state.controls[0].id)); expect(resultState).not.toBe(state); }); + + it('should enable an empty disabled state', () => { + const state = { + ...createFormArrayState(FORM_CONTROL_ID, []), + isDisabled: true, + isEnabled: false, + }; + + const resultState = enableReducer(state, new EnableAction(FORM_CONTROL_ID)); + expect(resultState.isEnabled).toBe(true); + }); }); diff --git a/src/array/reducer/enable.ts b/src/array/reducer/enable.ts index cd3ad8aa..8c314b7d 100644 --- a/src/array/reducer/enable.ts +++ b/src/array/reducer/enable.ts @@ -16,7 +16,7 @@ export function enableReducer( const controls = dispatchActionPerChild(state.controls, controlId => new EnableAction(controlId)); - if (controls === state.controls) { + if (controls === state.controls && state.isEnabled) { return state; }