github.com/kamiazya/dot-github@v1.3.0/cli_test.go (about) 1 package main 2 3 import ( 4 "bytes" 5 "os" 6 "strings" 7 "testing" 8 ) 9 10 func TestSpecifiedFlags(t *testing.T) { 11 os.Args = []string{"dot-github", "-issue", "-help", "-version", "-pullrequest", "-contributing", "-selfupdate"} 12 p, err := ParseCmdArgs(os.Stderr) 13 if err != nil { 14 t.Fatalf("must be parsed without error") 15 } 16 if !p.IssueOnly { 17 t.Errorf("-issue must be looked") 18 } 19 if !p.Help { 20 t.Errorf("-help must be looked") 21 } 22 if !p.PROnly { 23 t.Errorf("-pullrequest must be looked") 24 } 25 if !p.ContributingOnly { 26 t.Errorf("-contributing must be looked") 27 } 28 if !p.Version { 29 t.Errorf("-version must be looked") 30 } 31 if !p.SelfUpdate { 32 t.Errorf("-selfupdate must be looked") 33 } 34 } 35 36 func TestUnspecifiedFlags(t *testing.T) { 37 os.Args = []string{"dot-github"} 38 p, err := ParseCmdArgs(os.Stderr) 39 if err != nil { 40 t.Fatalf("must be parsed without error") 41 } 42 if p.IssueOnly { 43 t.Errorf("-issue is not valid default value") 44 } 45 if p.Help { 46 t.Errorf("-help is not valid default value") 47 } 48 if p.PROnly { 49 t.Errorf("-pullrequest is not valid default value") 50 } 51 if p.ContributingOnly { 52 t.Errorf("-contributing is not valid default value") 53 } 54 if p.Version { 55 t.Errorf("-version is not valid default value") 56 } 57 if p.SelfUpdate { 58 t.Errorf("-selfupdate is not valid default value") 59 } 60 } 61 62 func TestUndefinedFlags(t *testing.T) { 63 os.Args = []string{"dot-github", "-unknown"} 64 buf := &bytes.Buffer{} 65 _, err := ParseCmdArgs(buf) 66 if err == nil { 67 t.Fatalf("ignores unknown flag") 68 } 69 if !strings.Contains(buf.String(), "Usage:") { 70 t.Fatalf("does not output usage") 71 } 72 } 73 74 func TestShowHelp(t *testing.T) { 75 os.Args = []string{"dot-github"} 76 p, _ := ParseCmdArgs(os.Stderr) 77 buf := &bytes.Buffer{} 78 p.ShowUsage(buf) 79 if !strings.Contains(buf.String(), "Usage:") { 80 t.Fatalf("invalid help output") 81 } 82 }