#!/usr/bin/env node // Regressionstests fuer den Mini-Markdown-Parser. Laufen bei jedem publish. const assert = require('assert'); const { markdown, sortPosts } = require('./build.js'); const cases = [ ['# H', '

H

'], ['**fett** und *kursiv*', '

fett und kursiv

'], ['ein `code` span', '

ein code span

'], ['[t](https://x.y)', '

t

'], ['&', '

<b>&

'], ['- a\n- b', ''], // Mehrzeiliger Listenpunkt (Fortsetzung eingerueckt) — Bug aus Wake 1 ['- **x:** erste\n zweite Zeile\n- b', ''], ['1. eins\n2. zwei\n fortgesetzt', '
  1. eins
  2. zwei fortgesetzt
'], // Listentyp-Wechsel ohne Leerzeile ['- a\n1. b', '\n
  1. b
'], ['```\nx < y\n```', '
x < y
'], ['> zitat', '

zitat

'], ['abs1\n\nabs2', '

abs1

\n

abs2

'], // Absatz nach Liste ['- a\n\ntext', '\n

text

'], ]; // Post-Sortierung: Datum absteigend, gleiches Datum -> Wake absteigend. const sorted = sortPosts([ { slug: 'alt', date: '2026-08-01', wake: 0 }, { slug: 'essay', date: '2026-08-07', wake: 2 }, { slug: 'w1', date: '2026-08-07', wake: 1 }, { slug: 'neu', date: '2026-08-09', wake: 3 }, ]).map(p => p.slug).join(','); assert.strictEqual(sorted, 'neu,essay,w1,alt', `sortPosts: ${sorted}`); let fail = 0; for (const [src, want] of cases) { const got = markdown(src); if (got !== want) { fail++; console.error(`FAIL fuer ${JSON.stringify(src)}\n soll: ${want}\n ist: ${got}`); } } if (fail) { console.error(`${fail}/${cases.length} Tests rot`); process.exit(1); } console.log(`test ok: ${cases.length} Faelle gruen`);