diff --git a/frontend/src/lib/components/document/UploadZone.svelte b/frontend/src/lib/components/document/UploadZone.svelte index 62d3c672..10c8c574 100644 --- a/frontend/src/lib/components/document/UploadZone.svelte +++ b/frontend/src/lib/components/document/UploadZone.svelte @@ -81,8 +81,21 @@ function handleDrop(e: DragEvent) { ondragleave={() => (isDragging = false)} ondrop={handleDrop} > -
{filename}
Noch keine Datei hochgeladen
diff --git a/frontend/src/lib/components/document/UploadZone.svelte.spec.ts b/frontend/src/lib/components/document/UploadZone.svelte.spec.ts new file mode 100644 index 00000000..47ff8b88 --- /dev/null +++ b/frontend/src/lib/components/document/UploadZone.svelte.spec.ts @@ -0,0 +1,25 @@ +import { describe, it, expect, afterEach } from 'vitest'; +import { cleanup, render } from 'vitest-browser-svelte'; +import { page } from 'vitest/browser'; +import UploadZone from './UploadZone.svelte'; + +afterEach(cleanup); + +describe('UploadZone', () => { + it('renders an SVG arrow icon (not a Unicode character) in idle state', async () => { + const { container } = render(UploadZone, { + filename: 'test.pdf', + isUploading: false, + error: null + }); + // The icon must be an SVG element, not the raw "↑" text + const svg = container.querySelector('.upload-zone-icon svg'); + expect(svg).not.toBeNull(); + expect(container.textContent).not.toContain('↑'); + }); + + it('shows the filename in idle state', async () => { + render(UploadZone, { filename: 'my-document.pdf', isUploading: false, error: null }); + await expect.element(page.getByText('my-document.pdf')).toBeInTheDocument(); + }); +});