diff --git a/frontend/src/lib/components/CommentThread.svelte b/frontend/src/lib/components/CommentThread.svelte index 73858028..740825b3 100644 --- a/frontend/src/lib/components/CommentThread.svelte +++ b/frontend/src/lib/components/CommentThread.svelte @@ -199,7 +199,9 @@ onMount(() => { }); -{#if flatMessages.length > 0} +{#if flatMessages.length === 0} +

{m.comment_empty_hint()}

+{:else}
+ {#if selectedQuote} +

{m.transcription_block_quote_hint()}

+ {/if} +
diff --git a/frontend/src/lib/components/TranscriptionBlock.svelte.spec.ts b/frontend/src/lib/components/TranscriptionBlock.svelte.spec.ts index 1fee54b5..c05a8c88 100644 --- a/frontend/src/lib/components/TranscriptionBlock.svelte.spec.ts +++ b/frontend/src/lib/components/TranscriptionBlock.svelte.spec.ts @@ -228,12 +228,12 @@ describe('TranscriptionBlock — delete confirmation', () => { describe('TranscriptionBlock — quote selection', () => { it('shows quote hint after text is selected in textarea', async () => { renderBlock({ text: 'Breslau, den 12. August' }); - const textarea = page.getByRole('textbox'); - // Select all text via keyboard shortcut to trigger mouseup with selection - await textarea.click(); - await textarea.selectText(); - // Fire mouseup to trigger the selection handler - await textarea.dispatchEvent('mouseup'); + await page.getByRole('textbox').click(); + // Select text and fire mouseup via native DOM — locator.selectText/dispatchEvent not available + const el = document.querySelector('textarea') as HTMLTextAreaElement; + el.focus(); + el.setSelectionRange(0, el.value.length); + el.dispatchEvent(new MouseEvent('mouseup', { bubbles: true })); await expect.element(page.getByText(/Zitat/)).toBeInTheDocument(); }); }); diff --git a/frontend/src/lib/components/TranscriptionEditView.svelte.spec.ts b/frontend/src/lib/components/TranscriptionEditView.svelte.spec.ts index d537de83..c7fd211e 100644 --- a/frontend/src/lib/components/TranscriptionEditView.svelte.spec.ts +++ b/frontend/src/lib/components/TranscriptionEditView.svelte.spec.ts @@ -193,8 +193,9 @@ describe('TranscriptionEditView — flush on blur', () => { const textarea = page.getByRole('textbox').first(); await textarea.fill('Blur text'); - // Blur before 1500ms debounce fires - await textarea.blur(); + // Blur before 1500ms debounce fires — locator.blur() not available, use native DOM + const el = document.querySelector('textarea') as HTMLTextAreaElement; + el.dispatchEvent(new FocusEvent('blur', { bubbles: true })); await vi.runAllTimersAsync(); expect(onSaveBlock).toHaveBeenCalledWith('b1', 'Blur text'); diff --git a/frontend/src/routes/conversations/page.svelte.spec.ts b/frontend/src/routes/conversations/page.svelte.spec.ts index ebc7c4b3..2433c958 100644 --- a/frontend/src/routes/conversations/page.svelte.spec.ts +++ b/frontend/src/routes/conversations/page.svelte.spec.ts @@ -50,7 +50,7 @@ const withDocs = { describe('Conversations page – empty state', () => { it('shows the empty-state heading when no persons are selected', async () => { render(Page, { data: baseData }); - await expect.element(page.getByText(/Korrespondenz durchsuchen/i)).toBeInTheDocument(); + await expect.element(page.getByText(/Wessen Briefe möchten Sie lesen/i)).toBeInTheDocument(); }); it('hides the swap button when no persons are selected', async () => {