@@ -3,6 +3,7 @@ package main
33import (
44 "bytes"
55 "encoding/json"
6+ "errors"
67 "net"
78 "os"
89 "os/exec"
@@ -143,6 +144,38 @@ func TestRootCommandRejectsDirectPRTarget(t *testing.T) {
143144 }
144145}
145146
147+ func TestUnknownCommandPrintsRootHelp (t * testing.T ) {
148+ var out bytes.Buffer
149+ cmd := newRootCommand (time.Time {})
150+ cmd .SetOut (& bytes.Buffer {})
151+ cmd .SetErr (& out )
152+ cmd .SetArgs ([]string {"bogus" })
153+
154+ err := executeRootCommand (cmd )
155+ if err == nil {
156+ t .Fatal ("unknown command succeeded, want error" )
157+ }
158+ var quiet quietError
159+ if ! errors .As (err , & quiet ) {
160+ t .Fatalf ("error = %T, want quietError" , err )
161+ }
162+
163+ got := out .String ()
164+ for _ , want := range []string {
165+ `unknown command "bogus" for "diffs"` ,
166+ "Usage:" ,
167+ "diffs [flags]" ,
168+ "Available Commands:" ,
169+ "local" ,
170+ "pr" ,
171+ "version" ,
172+ } {
173+ if ! strings .Contains (got , want ) {
174+ t .Fatalf ("unknown command output missing %q in:\n %s" , want , got )
175+ }
176+ }
177+ }
178+
146179func TestLocalCommandRejectsNonGitRepository (t * testing.T ) {
147180 dir := t .TempDir ()
148181 var errOut bytes.Buffer
@@ -408,6 +441,7 @@ func TestRootCommandHelpShowsSubcommandsAndDir(t *testing.T) {
408441 "diffs [flags]" ,
409442 "local" ,
410443 "pr" ,
444+ "version" ,
411445 "--dir string" ,
412446 } {
413447 if ! strings .Contains (got , want ) {
@@ -449,6 +483,21 @@ func TestPRCommandHelp(t *testing.T) {
449483 }
450484}
451485
486+ func TestVersionCommandPrintsDefaultDevVersion (t * testing.T ) {
487+ var out bytes.Buffer
488+ cmd := newRootCommand (time.Time {})
489+ cmd .SetOut (& out )
490+ cmd .SetErr (& bytes.Buffer {})
491+ cmd .SetArgs ([]string {"version" })
492+ if err := cmd .Execute (); err != nil {
493+ t .Fatalf ("version failed: %v" , err )
494+ }
495+
496+ if got := out .String (); got != "dev\n " {
497+ t .Fatalf ("version output = %q, want %q" , got , "dev\n " )
498+ }
499+ }
500+
452501func TestCommentsCommandAddAndListJSON (t * testing.T ) {
453502 dir := t .TempDir ()
454503 git (t , dir , "init" , "-b" , "main" )
0 commit comments