core-capabilities.spec.ts 1.3 KB

123456789101112131415161718192021222324252627
  1. import { describe, expect, it } from 'vitest';
  2. import {
  3. isDomPrintableExtension,
  4. isKnownNonPrintableExtension,
  5. needsDedicatedPrintAdapter,
  6. resolvePrintAvailability,
  7. } from '../packages/core/src';
  8. describe('@file-viewer/core capability helpers', () => {
  9. it('keeps print capability decisions centralized in core', () => {
  10. expect(needsDedicatedPrintAdapter('pdf')).toBe(true);
  11. expect(needsDedicatedPrintAdapter('.DOCX')).toBe(true);
  12. expect(isDomPrintableExtension('md')).toBe(true);
  13. expect(isDomPrintableExtension('ofd')).toBe(true);
  14. expect(isKnownNonPrintableExtension('xlsx')).toBe(true);
  15. expect(isKnownNonPrintableExtension('zip')).toBe(true);
  16. });
  17. it('only enables adapter-backed print formats after the adapter is ready', () => {
  18. expect(resolvePrintAvailability('pdf', null, true)).toBe(false);
  19. expect(resolvePrintAvailability('pdf', { toHtml: () => '<main>pdf</main>' }, true)).toBe(true);
  20. expect(resolvePrintAvailability('pdf', { print: false, toHtml: () => '<main>pdf</main>' }, true)).toBe(false);
  21. expect(resolvePrintAvailability('markdown', null, true)).toBe(true);
  22. expect(resolvePrintAvailability('markdown', null, false)).toBe(false);
  23. expect(resolvePrintAvailability('xlsx', null, true)).toBe(false);
  24. });
  25. });