diff --git a/frontend/src/lib/components/document/DescriptionSection.svelte b/frontend/src/lib/components/document/DescriptionSection.svelte index 65742bce..5c8589e7 100644 --- a/frontend/src/lib/components/document/DescriptionSection.svelte +++ b/frontend/src/lib/components/document/DescriptionSection.svelte @@ -11,7 +11,8 @@ let { archiveBox = $bindable(''), archiveFolder = $bindable(''), initialTitle = '', - initialDocumentLocation = '', + initialArchiveBox = '', + initialArchiveFolder = '', initialSummary = '', titleRequired = false, suggestedTitle = '', @@ -24,7 +25,8 @@ let { archiveBox?: string; archiveFolder?: string; initialTitle?: string; - initialDocumentLocation?: string; + initialArchiveBox?: string; + initialArchiveFolder?: string; initialSummary?: string; titleRequired?: boolean; suggestedTitle?: string; @@ -41,7 +43,8 @@ let { let titleDirty = $state(false); onMount(() => { if (!currentTitle && initialTitle) currentTitle = initialTitle; - if (!documentLocation && initialDocumentLocation) documentLocation = initialDocumentLocation; + if (!archiveBox && initialArchiveBox) archiveBox = initialArchiveBox; + if (!archiveFolder && initialArchiveFolder) archiveFolder = initialArchiveFolder; }); const titleValue = $derived(titleDirty ? currentTitle : suggestedTitle || currentTitle); @@ -110,55 +113,36 @@ const titleValue = $derived(titleDirty ? currentTitle : suggestedTitle || curren {/if} - -
-
diff --git a/frontend/src/lib/components/document/DescriptionSection.svelte.spec.ts b/frontend/src/lib/components/document/DescriptionSection.svelte.spec.ts index 8d000a8c..f0c05599 100644 --- a/frontend/src/lib/components/document/DescriptionSection.svelte.spec.ts +++ b/frontend/src/lib/components/document/DescriptionSection.svelte.spec.ts @@ -21,19 +21,10 @@ describe('DescriptionSection — onMount seeding (Felix B1/B2 fix regression fen expect(titleInput.value).toBe('Parent Title'); }); - it('pre-fills the documentLocation input from initialDocumentLocation', async () => { - render(DescriptionSection, { initialDocumentLocation: 'Schrank 3, Mappe B' }); - const locationInput = document.querySelector('input#documentLocation') as HTMLInputElement; - expect(locationInput.value).toBe('Schrank 3, Mappe B'); - }); - - it('does not stomp a parent-bound documentLocation that is already non-empty', async () => { - render(DescriptionSection, { - documentLocation: 'Bound Value', - initialDocumentLocation: 'Should Not Win' - }); - const locationInput = document.querySelector('input#documentLocation') as HTMLInputElement; - expect(locationInput.value).toBe('Bound Value'); + it('always renders archiveBox + archiveFolder fields regardless of editMode', async () => { + render(DescriptionSection, { editMode: false }); + expect(document.querySelector('[data-testid="description-archive-box"]')).not.toBeNull(); + expect(document.querySelector('[data-testid="description-archive-folder"]')).not.toBeNull(); }); it('renders the editMode-only archiveBox + archiveFolder fields when editMode=true', async () => { @@ -42,9 +33,25 @@ describe('DescriptionSection — onMount seeding (Felix B1/B2 fix regression fen expect(document.querySelector('[data-testid="description-archive-folder"]')).not.toBeNull(); }); - it('hides the editMode-only archive fields when editMode=false', async () => { - render(DescriptionSection, { editMode: false }); - expect(document.querySelector('[data-testid="description-archive-box"]')).toBeNull(); - expect(document.querySelector('[data-testid="description-archive-folder"]')).toBeNull(); + it('pre-fills archiveBox from initialArchiveBox when archiveBox is empty', async () => { + render(DescriptionSection, { initialArchiveBox: 'K-03', hideTitle: true }); + const input = document.querySelector('input#archiveBox') as HTMLInputElement; + expect(input.value).toBe('K-03'); + }); + + it('pre-fills archiveFolder from initialArchiveFolder when archiveFolder is empty', async () => { + render(DescriptionSection, { initialArchiveFolder: 'Mappe B', hideTitle: true }); + const input = document.querySelector('input#archiveFolder') as HTMLInputElement; + expect(input.value).toBe('Mappe B'); + }); + + it('does not stomp a parent-bound archiveBox that is already non-empty', async () => { + render(DescriptionSection, { + archiveBox: 'Parent Value', + initialArchiveBox: 'Should Not Win', + hideTitle: true + }); + const input = document.querySelector('input#archiveBox') as HTMLInputElement; + expect(input.value).toBe('Parent Value'); }); });