import React from 'react'; import '@testing-library/jest-dom'; import { render, screen } from '@testing-library/react'; import CvTemplateThumbnail from './components/CvTemplateThumbnail'; import { cvBuilderApi, CvTheme } from './cvBuilder'; import { I18nProvider } from './i18n/I18nProvider'; test('template cards use the server-rendered sample in a sandboxed noninteractive preview', async () => { const theme = { id: 'preview-test', name: 'Preview test', layout: 'single', swatches: [] } as unknown as CvTheme; const request = jest.spyOn(cvBuilderApi, 'themePreview').mockResolvedValue({ themeId: theme.id, html: '

Rendered sample

', suggestedFileName: 'sample.pdf' }); try { render(); const iframe = await screen.findByTitle('Template sample preview'); expect(iframe).toHaveAttribute('srcdoc', expect.stringContaining('Rendered sample')); expect(iframe).toHaveAttribute('sandbox', ''); expect(iframe).toHaveAttribute('tabindex', '-1'); expect(request).toHaveBeenCalledWith(theme.id); } finally { request.mockRestore(); } });