fix(forms): handle nullable fields in deepMergeWithDefaults

When default value is null but source has a value (e.g., description
field), the merge was discarding the source value because typeof null
!== typeof string. Now properly accepts source values for nullable fields.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-06 13:54:18 +01:00
parent 3c6b14d2bf
commit 45025bb2f1
2 changed files with 13 additions and 0 deletions

View File

@@ -190,6 +190,15 @@ describe('deepMergeWithDefaults', () => {
const source = { value: null };
expect(deepMergeWithDefaults(defaults, source)).toEqual({ value: null });
});
it('uses source value when default is null but source has value', () => {
const defaults = { description: null as string | null, name: '' };
const source = { description: 'A real description', name: 'Test' };
expect(deepMergeWithDefaults(defaults, source)).toEqual({
description: 'A real description',
name: 'Test',
});
});
});
describe('createFormInitializer', () => {