Migrate to new cmd stubber in repo clone tests

This commit is contained in:
Mislav Marohnić 2021-01-18 22:42:13 +01:00
parent c63acf6728
commit 584b33e79c

View file

@ -6,6 +6,7 @@ import (
"testing"
"github.com/cli/cli/internal/config"
"github.com/cli/cli/internal/run"
"github.com/cli/cli/pkg/cmdutil"
"github.com/cli/cli/pkg/httpmock"
"github.com/cli/cli/pkg/iostreams"
@ -182,6 +183,7 @@ func Test_RepoClone(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
reg := &httpmock.Registry{}
defer reg.Verify(t)
reg.Register(
httpmock.GraphQL(`query RepositoryInfo\b`),
httpmock.StringResponse(`
@ -196,10 +198,11 @@ func Test_RepoClone(t *testing.T) {
httpClient := &http.Client{Transport: reg}
cs, restore := test.InitCmdStubber()
defer restore()
cs.Stub("") // git clone
cs, restore := run.Stub()
defer restore(t)
cs.Register(`git clone`, 0, "", func(s []string) {
assert.Equal(t, tt.want, strings.Join(s, " "))
})
output, err := runCloneCommand(httpClient, tt.args)
if err != nil {
@ -208,9 +211,6 @@ func Test_RepoClone(t *testing.T) {
assert.Equal(t, "", output.String())
assert.Equal(t, "", output.Stderr())
assert.Equal(t, 1, cs.Count)
assert.Equal(t, tt.want, strings.Join(cs.Calls[0].Args, " "))
reg.Verify(t)
})
}
}
@ -236,23 +236,20 @@ func Test_RepoClone_hasParent(t *testing.T) {
httpClient := &http.Client{Transport: reg}
cs, restore := test.InitCmdStubber()
defer restore()
cs.Stub("") // git clone
cs.Stub("") // git remote add
cs, restore := run.Stub()
defer restore(t)
cs.Register(`git clone`, 0, "")
cs.Register(`git -C REPO remote add -f upstream https://github\.com/hubot/ORIG\.git`, 0, "")
_, err := runCloneCommand(httpClient, "OWNER/REPO")
if err != nil {
t.Fatalf("error running command `repo clone`: %v", err)
}
assert.Equal(t, 2, cs.Count)
assert.Equal(t, "git -C REPO remote add -f upstream https://github.com/hubot/ORIG.git", strings.Join(cs.Calls[1].Args, " "))
}
func Test_RepoClone_withoutUsername(t *testing.T) {
reg := &httpmock.Registry{}
defer reg.Verify(t)
reg.Register(
httpmock.GraphQL(`query UserCurrent\b`),
httpmock.StringResponse(`
@ -269,19 +266,12 @@ func Test_RepoClone_withoutUsername(t *testing.T) {
}
} } }
`))
reg.Register(
httpmock.GraphQL(`query RepositoryFindParent\b`),
httpmock.StringResponse(`
{ "data": { "repository": {
"parent": null
} } }`))
httpClient := &http.Client{Transport: reg}
cs, restore := test.InitCmdStubber()
defer restore()
cs.Stub("") // git clone
cs, restore := run.Stub()
defer restore(t)
cs.Register(`git clone https://github\.com/OWNER/REPO\.git`, 0, "")
output, err := runCloneCommand(httpClient, "REPO")
if err != nil {
@ -290,6 +280,4 @@ func Test_RepoClone_withoutUsername(t *testing.T) {
assert.Equal(t, "", output.String())
assert.Equal(t, "", output.Stderr())
assert.Equal(t, 1, cs.Count)
assert.Equal(t, "git clone https://github.com/OWNER/REPO.git", strings.Join(cs.Calls[0].Args, " "))
}