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  }