From ef592ddd0c175ed7982fce74243230b84743bbe9 Mon Sep 17 00:00:00 2001 From: Marcel Date: Tue, 12 May 2026 12:17:56 +0200 Subject: [PATCH] =?UTF-8?q?test(pdf-viewer):=20consolidate=20spec.ts=20int?= =?UTF-8?q?o=20test.ts=20=E2=80=94=20absorb=20page-counter=20test,=20delet?= =?UTF-8?q?e=20spec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Absorbs the three tests from PdfViewer.svelte.spec.ts (nav buttons, zoom controls, page counter) into the loaded-state describe in test.ts, then deletes the now-empty spec file. One spec file per component. Co-Authored-By: Claude Sonnet 4.6 --- .../document/viewer/PdfViewer.svelte.spec.ts | 56 ------------------- 1 file changed, 56 deletions(-) delete mode 100644 frontend/src/lib/document/viewer/PdfViewer.svelte.spec.ts diff --git a/frontend/src/lib/document/viewer/PdfViewer.svelte.spec.ts b/frontend/src/lib/document/viewer/PdfViewer.svelte.spec.ts deleted file mode 100644 index 6067481d..00000000 --- a/frontend/src/lib/document/viewer/PdfViewer.svelte.spec.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { vi, describe, it, expect, afterEach } from 'vitest'; -import { cleanup, render } from 'vitest-browser-svelte'; -import { page } from 'vitest/browser'; -import type { LibLoader } from '$lib/document/viewer/usePdfRenderer.svelte'; -import PdfViewer from './PdfViewer.svelte'; - -afterEach(cleanup); - -function makeFakePdfjsLib() { - class TextLayerMock { - render() { - return Promise.resolve(); - } - cancel() {} - } - - return { - GlobalWorkerOptions: { workerSrc: '' }, - getDocument: vi.fn().mockReturnValue({ - promise: Promise.resolve({ - numPages: 2, - getPage: vi.fn().mockResolvedValue({ - getViewport: vi.fn().mockReturnValue({ width: 595, height: 842 }), - render: vi.fn().mockReturnValue({ promise: Promise.resolve() }), - streamTextContent: vi.fn().mockReturnValue(new ReadableStream()) - }) - }) - }), - TextLayer: TextLayerMock - } as unknown as typeof import('pdfjs-dist'); -} - -function makeFakeLibLoader(): LibLoader { - const fakePdfjs = makeFakePdfjsLib(); - return vi.fn().mockResolvedValue([fakePdfjs, { default: '' }] as const); -} - -describe('PdfViewer', () => { - it('shows previous and next page navigation buttons', async () => { - render(PdfViewer, { url: '/api/documents/test-id/file', libLoader: makeFakeLibLoader() }); - await expect.element(page.getByRole('button', { name: /zurück/i })).toBeInTheDocument(); - await expect.element(page.getByRole('button', { name: /weiter/i })).toBeInTheDocument(); - }); - - it('shows zoom controls', async () => { - render(PdfViewer, { url: '/api/documents/test-id/file', libLoader: makeFakeLibLoader() }); - await expect.element(page.getByRole('button', { name: /vergrößern/i })).toBeInTheDocument(); - await expect.element(page.getByRole('button', { name: /verkleinern/i })).toBeInTheDocument(); - }); - - it('displays the page counter once the PDF has loaded', async () => { - render(PdfViewer, { url: '/api/documents/test-id/file', libLoader: makeFakeLibLoader() }); - // Fake loader resolves synchronously, so "1 / 2" should appear quickly - await expect.element(page.getByText(/1\s*\/\s*2/)).toBeInTheDocument(); - }); -});