diff --git a/packages/api/src/files/documents/html.spec.ts b/packages/api/src/files/documents/html.spec.ts index eca519f9a6..a5d1d54f77 100644 --- a/packages/api/src/files/documents/html.spec.ts +++ b/packages/api/src/files/documents/html.spec.ts @@ -419,14 +419,23 @@ describe('Office HTML producers', () => { expect(html).toContain('id="lc-doc-data"'); expect(html).toContain('pptxPreview.init'); expect(html).toContain('cdn.jsdelivr.net/npm/pptx-preview@'); - // Slide-list signature must NOT appear (those are
    ). - expect(html).not.toContain('class="lc-pptx-list"'); + /* The slide-list `
      ` is now embedded + * INSIDE the CDN doc as a runtime fallback for the silent- + * empty-render case (pptx-preview's compatibility issues with + * pptxgenjs decks). It lives in the hidden `#lc-fallback` + * block; the bootstrap reveals it when `hasRenderedContent()` + * detects empty wrappers. Manual e2e on PR #12934. */ + expect(html).toContain('class="lc-pptx-list"'); + expect(html).toContain('id="lc-fallback"'); }); describe('CDN-rendered path', () => { test('embeds the binary as base64 that round-trips to the original bytes', async () => { const original = await buildPptx([{ title: 'Test' }]); - const html = await _internal.pptxToHtmlViaCdn(original); + const html = await _internal.pptxToHtmlViaCdn( + original, + '
      1. fb
      ', + ); const match = html.match( /
      Loading preview…