Files
markdown-converter/tests/export-css.test.js
T
amitwh 7095b34280 style: apply Prettier formatting
Run after full implementation to enforce 2-space / 100-char / single-quote
conventions across all new + adjacent files.
2026-08-23 19:31:33 +05:30

38 lines
1.2 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const ExportCss = require('../src/main/ExportCss');
describe('ExportCss.build', () => {
const fakeFontPath = path.join(__dirname, 'fixtures', 'fake.woff2');
const fixture = Buffer.from('woff2-binary-fake-data');
beforeAll(() => {
fs.mkdirSync(path.dirname(fakeFontPath), { recursive: true });
fs.writeFileSync(fakeFontPath, fixture);
});
afterAll(() => fs.rmSync(path.dirname(fakeFontPath), { recursive: true, force: true }));
test('emits a self-contained CSS with embedded @font-face', () => {
const css = ExportCss.build({
activeFontPath: fakeFontPath,
family: 'JetBrains Mono',
weight: 400,
ligatures: false,
});
expect(css).toMatch(/@font-face\s*\{[^}]*src:\s*url\('data:font\/woff2;base64,/);
expect(css).toContain("font-family: 'JetBrains Mono'");
expect(css).toMatch(/font-feature-settings:[^;]*liga[^;]*0/);
});
test('falls back to family-only CSS when font path is missing', () => {
const css = ExportCss.build({
activeFontPath: null,
family: 'Fira Code',
weight: 700,
ligatures: true,
});
expect(css).not.toContain('data:font/woff2;');
expect(css).toContain("font-family: 'Fira Code'");
});
});