import { describe, expect, it } from 'vitest' import { readFileSync } from 'node:fs' import { VERSION, versionstext } from '@/lib/version' /** * Die Version steht an zwei Stellen: in der package.json und in * src/lib/version.ts. Das ist Absicht - im Standalone-Build liegt eine * andere package.json neben dem Server als die des Projekts, ein Import * waere also je nach Laufzeit eine andere Zahl. * * Damit die beiden nicht auseinanderlaufen, gibt es dieses Netz. Wer die * Version von Hand aendert statt mit "npm run version", merkt es hier. */ describe('Version', () => { const paket = JSON.parse(readFileSync('package.json', 'utf8')) as { version: string } it('stimmt mit der package.json ueberein', () => { expect( VERSION, 'src/lib/version.ts und package.json weichen ab - benutze "npm run version"', ).toBe(paket.version) }) it('ist eine gueltige Versionsnummer nach SemVer', () => { expect(VERSION).toMatch(/^\d+\.\d+\.\d+$/) }) it('haengt den Git-Stand an, wenn er bekannt ist', () => { expect(versionstext().startsWith(VERSION)).toBe(true) }) })