package main import ( "bytes" "fmt" "testing" "gitea.maximumdirect.net/eric/ReleaseKit/buildinfo" ) func TestVersionCommand(t *testing.T) { var stdout, stderr bytes.Buffer if status := run([]string{"version"}, &stdout, &stderr); status != 0 { t.Fatalf("run() status = %d, want 0; stderr = %q", status, stderr.String()) } if want := fmt.Sprintf("releasekit %s\n", buildinfo.Version()); stdout.String() != want { t.Fatalf("version output = %q, want %q", stdout.String(), want) } if stderr.Len() != 0 { t.Fatalf("version command wrote to stderr: %q", stderr.String()) } } func TestUnknownCommand(t *testing.T) { var stdout, stderr bytes.Buffer if status := run([]string{"publish"}, &stdout, &stderr); status != 2 { t.Fatalf("run() status = %d, want 2", status) } if stdout.Len() != 0 { t.Fatalf("unknown command wrote to stdout: %q", stdout.String()) } if want := "usage: releasekit version\n"; stderr.String() != want { t.Fatalf("usage output = %q, want %q", stderr.String(), want) } }