import { readFileSync } from "node:fs"; import { describe, expect, it } from "vitest"; import { benoetigteRechte, versionLesen } from "@/engine/proxmox/faehigkeiten"; /** Die Befehle in der Doku müssen genau die Rechte nennen, die der Verbindungstest verlangt. */ const doku = readFileSync("docs/proxmox-rechte.md", "utf8"); function befehlNach(ueberschrift: string): string[] { const abschnitt = doku.slice(doku.indexOf(ueberschrift)); const treffer = /--privs "([^"]+)"/.exec(abschnitt); return treffer![1]!.split(" ").sort(); } describe("Doku der Proxmox-Rechte", () => { it.each([ ["## Rolle anlegen (PVE 9.x)", "9.2.1"], ["## Rolle anlegen (PVE 8.x)", "8.4.1"], ])("%s entspricht der Pflichtliste", (ueberschrift, version) => { const pflicht = benoetigteRechte(versionLesen(version)!) .filter((r) => r.pflicht) .map((r) => r.recht) .sort(); expect(befehlNach(ueberschrift)).toEqual(pflicht); }); });