// L'apercu sert a relire le compte rendu ligne a ligne pendant qu'on corrige // l'extraction : ce qui compte est qu'il s'ouvre a une echelle lisible, pas // qu'il tienne entier dans le volet. import { describe, expect, it } from 'vitest' import { createSSRApp } from 'vue' import { renderToString } from 'vue/server-renderer' import PdfPreview from '../src/components/PdfPreview.vue' function rendu(proprietes = {}) { return renderToString(createSSRApp(PdfPreview, proprietes)) } describe('PdfPreview', () => { it('ouvre le document a l echelle 1:1', async () => { // Le zoom par defaut du lecteur integre tombe vers 35 % dans un volet // etroit, ce qui reduit les tableaux du CRG (7 pt) a 3 px de haut. A 100 % // ils font 9,3 px et redeviennent lisibles, quitte a devoir defiler. const html = await rendu({ url: '/api/documents/37/pdf' }) expect(html).toContain('/api/documents/37/pdf#zoom=100') }) it('annonce l absence de document plutot qu un cadre vide', async () => { const html = await rendu() expect(html).toContain('Aucun PDF sélectionné') expect(html).not.toContain(' { // Seule issue quand le moteur n'embarque pas de lecteur PDF : sans ce // lien, le volet resterait vide sans recours. const html = await rendu({ url: '/api/documents/37/pdf' }) expect(html).toContain('target="_blank"') }) it('affiche le nom du fichier relu', async () => { const html = await rendu({ url: '/api/documents/37/pdf', fileName: '2026 07 Servient.pdf' }) expect(html).toContain('2026 07 Servient.pdf') }) })