Files
orca/cmd/orca/main_test.go
T
Jon Chery 2ce6622055 test(cmd/orca): smoke test ≥50% toe-hold, main→run refactor (T01.11, REQ-057)
Refactor main() into run() int (main calls os.Exit(run())) so the test
can exercise the CLI directly without os.Exit terminating the test
process. Add main_test.go with two cases: run() success path (version
command → exit 0) and run() error path (job run with missing spec →
exit 1, stderr contains "error:"). Low-effort toe-hold per RESEARCH
§1.1/§1.4 — do not over-invest in glue-code coverage.

Coverage: go test -cover ./cmd/orca → 80.0% (was 0%, target ≥50%).
go test -race PASS.

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

42 lines
805 B
Go

package main
import (
"io"
"os"
"strings"
"testing"
)
func TestRunSuccess(t *testing.T) {
orig := os.Args
t.Cleanup(func() { os.Args = orig })
os.Args = []string{"orca", "version"}
if code := run(); code != 0 {
t.Errorf("run() = %d, want 0", code)
}
}
func TestRunError(t *testing.T) {
origArgs := os.Args
t.Cleanup(func() { os.Args = origArgs })
os.Args = []string{"orca", "job", "run", "/nonexistent/spec.hcl"}
r, w, err := os.Pipe()
if err != nil {
t.Fatalf("pipe: %v", err)
}
origStderr := os.Stderr
os.Stderr = w
t.Cleanup(func() { os.Stderr = origStderr })
code := run()
w.Close()
out, _ := io.ReadAll(r)
if code != 1 {
t.Errorf("run() = %d, want 1", code)
}
if !strings.Contains(string(out), "error:") {
t.Errorf("stderr missing 'error:' prefix: %s", out)
}
}