Files

37 lines
1.4 KiB
JavaScript

const { buildExportCss, buildFontFaceBlock } = require('../../../../src/main/ExportCss');
describe('ExportCss', () => {
test('buildFontFaceBlock emits @font-face with base64 data URI', () => {
const woff2 = Buffer.from([0x77, 0x4f, 0x46, 0x32]);
const css = buildFontFaceBlock('JetBrains Mono', woff2);
expect(css).toContain('@font-face');
expect(css).toContain("font-family: 'JetBrains Mono'");
expect(css).toContain("format('woff2')");
expect(css).toContain('base64,');
const m = css.match(/base64,([A-Za-z0-9+/=]+)/);
expect(m).toBeTruthy();
expect(Buffer.from(m[1], 'base64')).toEqual(woff2);
});
test('buildExportCss writes @font-face + ligatures when enabled', () => {
const woff2 = Buffer.from([0x77, 0x4f, 0x46, 0x32]);
const css = buildExportCss(
{ monospaceFont: 'jetbrains-mono', monospaceLigatures: true },
{ woff2 }
);
expect(css).toContain('@font-face');
expect(css).toContain('font-feature-settings');
expect(css).toContain("'liga' 1");
});
test('buildExportCss with ligatures off omits font-feature-settings', () => {
const woff2 = Buffer.from([0x77, 0x4f, 0x46, 0x32]);
const css = buildExportCss(
{ monospaceFont: 'fira-code', monospaceLigatures: false },
{ woff2 }
);
expect(css).not.toContain('font-feature-settings');
expect(css).toContain('Fira Code');
});
});