working on the test file for the browse.go
This commit is contained in:
parent
dd4ebc9b8f
commit
6ed9900084
1 changed files with 129 additions and 83 deletions
|
|
@ -16,101 +16,147 @@ import (
|
|||
)
|
||||
|
||||
func TestNewCmdBrowse(t *testing.T) {
|
||||
// TODO test the use of the api using "gh browse"
|
||||
// instead of opening multiple browsers for each test,
|
||||
// we can test the http code sent back after calling a site
|
||||
|
||||
}
|
||||
|
||||
func runCommand(isTTY bool, cli string) (*test.CmdOut, error) {
|
||||
io, _, stdout, stderr := iostreams.Test()
|
||||
io.SetStdoutTTY(isTTY)
|
||||
io.SetStdinTTY(isTTY)
|
||||
io.SetStderrTTY(isTTY)
|
||||
|
||||
factory := &cmdutil.Factory{
|
||||
IOStreams: io,
|
||||
HttpClient: func() (*http.Client, error) {
|
||||
return &http.Client{Transport: rt}, nil
|
||||
},
|
||||
Config: func() (config.Config, error) {
|
||||
return config.NewBlankConfig(), nil
|
||||
},
|
||||
BaseRepo: func() (ghrepo.Interface, error) {
|
||||
return ghrepo.New("OWNER", "REPO"), nil
|
||||
},
|
||||
}
|
||||
|
||||
cmd := NewCmdBrowse(factory)
|
||||
|
||||
argv, err := shlex.Split(cli)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cmd.SetArgs(argv)
|
||||
|
||||
cmd.SetIn(&bytes.Buffer{})
|
||||
cmd.SetOut(ioutil.Discard)
|
||||
cmd.SetErr(ioutil.Discard)
|
||||
|
||||
_, err = cmd.ExecuteC()
|
||||
return &test.CmdOut{
|
||||
OutBuf: stdout,
|
||||
ErrBuf: stderr,
|
||||
}, err
|
||||
}
|
||||
|
||||
func TestBrowseOpen(t *testing.T) {
|
||||
runCommand(true, "")
|
||||
}
|
||||
|
||||
func Test_browseList(t *testing.T) {
|
||||
type args struct {
|
||||
repo ghrepo.Interface
|
||||
cli string
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
urlExpected string
|
||||
exitExpected exitCode
|
||||
}{}
|
||||
for _, test := range tests {
|
||||
name string
|
||||
args args
|
||||
errorExpected error
|
||||
stdoutExpected string
|
||||
stderrExpected string
|
||||
}{
|
||||
name: "test1",
|
||||
arg : args{
|
||||
repo: ghrepo.New("bchadwic","cli"),
|
||||
cli: "--settings",
|
||||
},
|
||||
errorExpected: nil,
|
||||
stdoutExpected: "now opening https://github.com/bchadwic/cli/settings in browser . . .\n",
|
||||
stderrExpected: "",
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
_, _, stdout, stderr := iostreams.Test()
|
||||
// tt.topic
|
||||
|
||||
factory := &cmdutil.Factory{
|
||||
IOStreams: io,
|
||||
//os.Getenv("BROWSER")
|
||||
Browser: cmdutil.NewBrowser("", stdout, stderr),
|
||||
HttpClient: func() (*http.Client, error) {
|
||||
return &http.Client{Transport: rt}, nil
|
||||
},
|
||||
BaseRepo: tt.args.repo,
|
||||
},
|
||||
}
|
||||
cmd := NewCmdBrowse(factory)
|
||||
|
||||
argv, err := shlex.Split(cli)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
cmd.SetArgs(argv)
|
||||
cmd.SetOut(stdout)
|
||||
cmd.SetErr(stderr)
|
||||
|
||||
_, err := cmd.ExecuteC()
|
||||
assert.Error(t, err)
|
||||
if stdoutExpected != "" {
|
||||
assert.Contains(t, stdout.String(), tt.outputExpected) // success outputs
|
||||
}
|
||||
if stderrExpected != "" {
|
||||
assert.Contains(t, stderr.String(), tt.outputExpected) // error outputs
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func createCommand(repo ghrepo.Interface, cli string) *cobra.Command {
|
||||
io, _, stdout, stderr := iostreams.Test()
|
||||
io.SetStdoutTTY(false)
|
||||
io.SetStdinTTY(false) // Ask the team about TTY
|
||||
io.SetStderrTTY(false)
|
||||
|
||||
factory := &cmdutil.Factory{
|
||||
IOStreams: io,
|
||||
Config: func() (config.Config, error) {
|
||||
return config.NewBlankConfig(), nil
|
||||
},
|
||||
BaseRepo: func() (ghrepo.Interface, error) {
|
||||
return ghrepo.New("OWNER", "REPO"), nil
|
||||
},
|
||||
}
|
||||
|
||||
cmd := NewCmdView(factory, nil)
|
||||
// func runCommand(isTTY bool, cli string) (*test.CmdOut, error) {
|
||||
// io, _, stdout, stderr := iostreams.Test()
|
||||
// io.SetStdoutTTY(isTTY)
|
||||
// io.SetStdinTTY(isTTY)
|
||||
// io.SetStderrTTY(isTTY)
|
||||
|
||||
argv, err := shlex.Split(cli)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cmd.SetArgs(argv)
|
||||
// factory := &cmdutil.Factory{
|
||||
// IOStreams: io,
|
||||
// HttpClient: func() (*http.Client, error) {
|
||||
// return &http.Client{Transport: rt}, nil
|
||||
// },
|
||||
// Config: func() (config.Config, error) {
|
||||
// return config.NewBlankConfig(), nil
|
||||
// },
|
||||
// BaseRepo: func() (ghrepo.Interface, error) {
|
||||
// return ghrepo.New("OWNER", "REPO"), nil
|
||||
// },
|
||||
// }
|
||||
|
||||
cmd.SetIn(&bytes.Buffer{})
|
||||
cmd.SetOut(ioutil.Discard)
|
||||
cmd.SetErr(ioutil.Discard)
|
||||
// cmd := NewCmdBrowse(factory)
|
||||
|
||||
_, err = cmd.ExecuteC()
|
||||
return &test.CmdOut{
|
||||
OutBuf: stdout,
|
||||
ErrBuf: stderr,
|
||||
}, err
|
||||
}
|
||||
// argv, err := shlex.Split(cli)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// cmd.SetArgs(argv)
|
||||
|
||||
// cmd.SetIn(&bytes.Buffer{})
|
||||
// cmd.SetOut(ioutil.Discard)
|
||||
// cmd.SetErr(ioutil.Discard)
|
||||
|
||||
// _, err = cmd.ExecuteC()
|
||||
// return &test.CmdOut{
|
||||
// OutBuf: stdout,
|
||||
// ErrBuf: stderr,
|
||||
// }, err
|
||||
// }
|
||||
|
||||
// func TestBrowseOpen(t *testing.T) {
|
||||
// runCommand(true, "")
|
||||
// }
|
||||
|
||||
// func Test_browseList(t *testing.T) {
|
||||
// for _, test := range tests {
|
||||
// arg = test.args
|
||||
// cmd := createCommand(arg.repo, arg.cli)
|
||||
// err := cmd.RunE();
|
||||
// }
|
||||
// }
|
||||
|
||||
// func createCommand(repo ghrepo.Interface, cli string) *cobra.Command {
|
||||
// io, _, stdout, stderr := iostreams.Test()
|
||||
// io.SetStdoutTTY(false)
|
||||
// io.SetStdinTTY(false) // Ask the team about TTY
|
||||
// io.SetStderrTTY(false)
|
||||
|
||||
// factory := &cmdutil.Factory{
|
||||
// IOStreams: io,
|
||||
// Config: func() (config.Config, error) {
|
||||
// return config.NewBlankConfig(), nil
|
||||
// },
|
||||
// BaseRepo: repo
|
||||
// },
|
||||
// }
|
||||
|
||||
// cmd := NewCmdBrowse(factory, nil)
|
||||
|
||||
// argv, err := shlex.Split(cli)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// cmd.SetArgs(argv)
|
||||
|
||||
// cmd.SetIn(&bytes.Buffer{})
|
||||
// cmd.SetOut(ioutil.Discard)
|
||||
// cmd.SetErr(ioutil.Discard)
|
||||
|
||||
// _, err = cmd.RunE()
|
||||
// return &test.CmdOut{
|
||||
// OutBuf: stdout,
|
||||
// ErrBuf: stderr,
|
||||
// }, err
|
||||
// }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue