Files
orca/internal/cli/version_test.go
T
Jon Chery 6408342a7f test(cli): coverage uplift to ≥70% excl daemon.go (T01.6, REQ-057)
Add table-driven rootCmd.Execute() tests for the node, job, cert,
doctor, audit, status, version, and node-capacity subcommand families.
Each test runs against a temp ORCA_HOME and asserts stdout/stderr/exit
via the existing initTestEnv/resetRootFlags/discardWriter helpers
(RESEARCH §1.2). extend resetRootFlags to also reset the per-command
flag-bound globals so tests don't leak state between runs.

daemon.go is excluded from the ≥70% target (documented in node_test.go):
the daemon command starts a long-running mTLS server whose lifecycle is
covered by internal/daemon/server_test.go; only its --pprof flag
registration is verified here (daemon_test.go).

Coverage: go test -cover ./internal/cli → 76.2% overall (78.7% by
-func), which includes daemon.go's untested RunE; the non-daemon files
exceed 70% comfortably. go test -race PASS.

---ci---
project: orca
phase: 1
milestone: v0.8
status: execute
---/ci---
2026-08-04 01:43:38 +00:00

48 lines
1.1 KiB
Go

package cli
import (
"bytes"
"encoding/json"
"strings"
"testing"
)
func TestVersionText(t *testing.T) {
resetRootFlags(t)
var buf bytes.Buffer
rootCmd.SetOut(&buf)
rootCmd.SetErr(&buf)
rootCmd.SetArgs([]string{"version"})
if err := rootCmd.Execute(); err != nil {
t.Fatalf("version: %v", err)
}
out := buf.String()
if !strings.Contains(out, "orca version") {
t.Errorf("version text output unexpected: %s", out)
}
if !strings.Contains(out, "git commit") {
t.Errorf("version output missing git commit: %s", out)
}
}
func TestVersionJSON(t *testing.T) {
resetRootFlags(t)
var buf bytes.Buffer
rootCmd.SetOut(&buf)
rootCmd.SetErr(&buf)
rootCmd.SetArgs([]string{"version", "--json"})
if err := rootCmd.Execute(); err != nil {
t.Fatalf("version --json: %v", err)
}
var info map[string]string
if err := json.Unmarshal(bytes.TrimSpace(buf.Bytes()), &info); err != nil {
t.Fatalf("unmarshal version json: %v\n%s", err, buf.String())
}
if info["version"] == "" {
t.Errorf("version json missing version field: %v", info)
}
if info["git_commit"] == "" {
t.Errorf("version json missing git_commit field: %v", info)
}
}