test: semantic package lint, LO style resolution, cross-format rendering

Three legs against the closed-loop blind spot the duplicate-style bug
exposed: package-lint.test.ts checks invariants the schemas cannot
express (unique style ids/names, dangling style/num/rel references,
balanced ranges, manifest completeness); lo-roundtrip gains a
soffice→fodt leg asserting the styles LibreOffice resolves (Heading
chain Arial/bold/sizes, Word defaults); lo-render-consistency.test.ts
renders the kitchen sink from both formats through LibreOffice and
compares pagination and pixels (ratchet thresholds). CI's LO job
gains poppler-utils; test:lo runs both LO files.
This commit is contained in:
Steffen Becker committed 2026-08-30 10:05:43 +00:00
1 parent 4295baa284
commit 1e88427154
7 files changed
+358 -6

No files matched your search

+2 -1
View File
@@ -39,7 +39,8 @@ jobs:
with:
node-version: 20
cache: npm
- run: sudo apt-get update && sudo apt-get install -y --no-install-recommends libreoffice-writer fonts-liberation
# poppler-utils rasterizes the PDFs the render-consistency leg compares.
- run: sudo apt-get update && sudo apt-get install -y --no-install-recommends libreoffice-writer fonts-liberation poppler-utils
- run: npm ci
- run: npm run test:lo