fix(cli): Test las die Konfiguration des Hosts statt einer Attrappe

TestRunNoArgsDefaultsToServe rief run(nil) auf und griff damit auf den
Default-Pfad /etc/vpnportal/config.yaml zu. Auf einem Entwicklungsrechner
existiert der nicht, der Test war dort gruen. Auf einem Zielhost mit
installierter Konfiguration las er dagegen die Produktivkonfiguration und
loeste echte Verbindungsversuche zu Firewall und Domain Controllern aus.

Die Kommandoauswahl ist jetzt als reine Funktion commandFor testbar. Kein
Test ruft serve oder check mehr ohne expliziten --config-Pfad auf.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBHF4R9EAejDJUMdwr6C68
This commit is contained in:
Carsten Abele 2026-08-14 13:22:35 +02:00
parent 0fc2d8808b
commit 7237aee744
2 changed files with 61 additions and 12 deletions

View file

@ -21,12 +21,17 @@ func main() {
os.Exit(run(os.Args[1:], os.Stdout, os.Stderr))
}
func run(args []string, stdout, stderr io.Writer) int {
cmd := "serve"
rest := args
// commandFor waehlt das Unterkommando. Fehlt es oder beginnt das erste
// Argument mit '-', gilt serve als Vorgabe.
func commandFor(args []string) (cmd string, rest []string) {
if len(args) > 0 && len(args[0]) > 0 && args[0][0] != '-' {
cmd, rest = args[0], args[1:]
return args[0], args[1:]
}
return "serve", args
}
func run(args []string, stdout, stderr io.Writer) int {
cmd, rest := commandFor(args)
switch cmd {
case "version":