test(pdf-renderer): inject libLoader into createPdfRenderer to eliminate vi.mock factories
Adds an optional LibLoader parameter (defaults to the real pdfjs-dist dynamic imports) and a failing test that verified the loader is called during init(). This is the first step toward removing ManualMockedModule registrations that race with vitest-browser-playwright's birpc teardown (#535). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import { describe, it, expect, vi } from 'vitest';
|
||||
import { createPdfRenderer } from './usePdfRenderer.svelte';
|
||||
|
||||
// Note: init() and loadDocument() require pdfjsLib (browser module).
|
||||
@@ -66,4 +66,17 @@ describe('createPdfRenderer', () => {
|
||||
expect(r.error).toBeNull();
|
||||
expect(r.loading).toBe(false);
|
||||
});
|
||||
|
||||
it('calls injected libLoader during init and sets pdfjsReady', async () => {
|
||||
const fakePdfjs = {
|
||||
GlobalWorkerOptions: { workerSrc: '' },
|
||||
getDocument: vi.fn(),
|
||||
TextLayer: class {}
|
||||
} as unknown as typeof import('pdfjs-dist');
|
||||
const fakeLoader = vi.fn().mockResolvedValue([fakePdfjs, { default: '' }] as const);
|
||||
const r = createPdfRenderer(fakeLoader);
|
||||
await r.init();
|
||||
expect(fakeLoader).toHaveBeenCalledOnce();
|
||||
expect(r.pdfjsReady).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user