import { describe, expect, it } from 'vitest'; import { markClassifiedMarkdown, parseClassifiedMarkdown } from './classified-markdown'; const MARKING = 'VS – NUR FÜR DEN DIENSTGEBRAUCH'; describe('classified markdown marking (issue #210)', () => { it('wraps a classified page in frontmatter and top+bottom imprint', () => { const marked = markClassifiedMarkdown('# Title\n\nBody.\n', 'vs_nfd'); expect(marked).toBe( `---\nclassification: vs_nfd\n---\n\n${MARKING}\n\n# Title\n\nBody.\n\n${MARKING}\n`, ); }); it('leaves unclassified markdown untouched', () => { expect(markClassifiedMarkdown('# Title\n\nBody.\n', 'unclassified')).toBe('# Title\n\nBody.\n'); }); it('parse is the inverse of mark', () => { const original = '# Title\n\nBody.\n'; const { markdown, classification } = parseClassifiedMarkdown( markClassifiedMarkdown(original, 'vs_nfd'), ); expect(classification).toBe('vs_nfd'); expect(markdown).toBe(original); }); it('passes documents without our frontmatter through unchanged', () => { for (const raw of [ '# Plain\n\nNo frontmatter.\n', '---\ntitle: Foreign frontmatter\ntags: [a]\n---\n\n# Doc\n', `${MARKING}\n\nJust an imprint line without frontmatter.\n`, ]) { const { markdown, classification } = parseClassifiedMarkdown(raw); expect(classification).toBeNull(); expect(markdown).toBe(raw); } }); });