Loading commands/project/clone/repo_clone_integration_test.go 0 → 100644 +111 −0 Original line number Diff line number Diff line package clone import ( "fmt" "strings" "testing" "gitlab.com/gitlab-org/cli/pkg/iostreams" "gitlab.com/gitlab-org/cli/commands/cmdutils" "gitlab.com/gitlab-org/cli/internal/config" "gitlab.com/gitlab-org/cli/test" "github.com/stretchr/testify/assert" ) func Test_repoClone_Integration(t *testing.T) { glTestHost := test.GetHostOrSkip(t) t.Setenv("GITLAB_HOST", glTestHost) io, stdin, stdout, stderr := iostreams.Test() fac := &cmdutils.Factory{ IO: io, Config: func() (config.Config, error) { return config.NewBlankConfig(), nil }, } cs, restore := test.InitCmdStubber() // git clone cs.Stub("") // git remote add cs.Stub("") defer restore() cmd := NewCmdClone(fac, nil) out, err := runCommand(cmd, "test", stdin, stdout, stderr) if err != nil { t.Errorf("unexpected error: %q", err) return } assert.Equal(t, "", out.String()) assert.Equal(t, "", out.Stderr()) assert.Equal(t, 1, cs.Count) assert.Equal(t, "git clone git@gitlab.com:clemsbot/test.git", strings.Join(cs.Calls[0].Args, " ")) } func Test_repoClone_group_Integration(t *testing.T) { names := []string{"glab-cli/test", "glab-cli/test-pv"} urls := []string{"git@gitlab.com:glab-cli/test.git", "git@gitlab.com:glab-cli/test-pv.git"} repoCloneTest(t, names, urls, 0, false) } func Test_repoClone_group_single_Integration(t *testing.T) { names := []string{"glab-cli/test"} urls := []string{"git@gitlab.com:glab-cli/test.git"} repoCloneTest(t, names, urls, 1, false) } func Test_repoClone_group_paginate_Integration(t *testing.T) { names := []string{"glab-cli/test", "glab-cli/test-pv"} urls := []string{"git@gitlab.com:glab-cli/test.git", "git@gitlab.com:glab-cli/test-pv.git"} repoCloneTest(t, names, urls, 1, true) } func repoCloneTest(t *testing.T, expectedRepoNames []string, expectedRepoUrls []string, perPage int, paginate bool) { assert.Equal(t, len(expectedRepoNames), len(expectedRepoUrls)) glTestHost := test.GetHostOrSkip(t) t.Setenv("GITLAB_HOST", glTestHost) io, stdin, stdout, stderr := iostreams.Test() fac := &cmdutils.Factory{ IO: io, Config: func() (config.Config, error) { return config.NewBlankConfig(), nil }, } cs, restore := test.InitCmdStubber() for i := 0; i < len(expectedRepoUrls); i++ { cs.Stub("") } defer restore() cmd := NewCmdClone(fac, nil) cli := "-g glab-cli" if perPage != 0 { cli += fmt.Sprintf(" --per-page %d", perPage) } if paginate { cli += " --paginate" } // TODO: stub api.ListGroupProjects endpoint out, err := runCommand(cmd, cli, stdin, stdout, stderr) if err != nil { t.Errorf("unexpected error: %q", err) return } assert.Equal(t, "✓ "+strings.Join(expectedRepoNames, "\n✓ ")+"\n", out.String()) assert.Equal(t, "", out.Stderr()) assert.Equal(t, len(expectedRepoUrls), cs.Count) for i := 0; i < len(expectedRepoUrls); i++ { assert.Equal(t, fmt.Sprintf("git clone %s", expectedRepoUrls[i]), strings.Join(cs.Calls[i].Args, " ")) } } commands/project/clone/repo_clone_test.go +0 −107 Original line number Diff line number Diff line Loading @@ -2,8 +2,6 @@ package clone import ( "bytes" "fmt" "strings" "testing" "gitlab.com/gitlab-org/cli/pkg/iostreams" Loading @@ -13,7 +11,6 @@ import ( "github.com/google/shlex" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/cli/commands/cmdutils" "gitlab.com/gitlab-org/cli/internal/config" "gitlab.com/gitlab-org/cli/test" "github.com/stretchr/testify/assert" Loading Loading @@ -145,107 +142,3 @@ func TestNewCmdClone(t *testing.T) { }) } } func Test_repoClone(t *testing.T) { defer config.StubConfig(` hosts: gitlab.com: token: qRC87Xg9Wd46RhB8J8sp `, "")() t.Setenv("GITLAB_TOKEN", "") io, stdin, stdout, stderr := iostreams.Test() fac := &cmdutils.Factory{ IO: io, Config: func() (config.Config, error) { return config.ParseConfig("config.yml") }, } cs, restore := test.InitCmdStubber() // git clone cs.Stub("") // git remote add cs.Stub("") defer restore() cmd := NewCmdClone(fac, nil) out, err := runCommand(cmd, "test", stdin, stdout, stderr) if err != nil { t.Errorf("unexpected error: %q", err) return } assert.Equal(t, "", out.String()) assert.Equal(t, "", out.Stderr()) assert.Equal(t, 1, cs.Count) assert.Equal(t, "git clone git@gitlab.com:clemsbot/test.git", strings.Join(cs.Calls[0].Args, " ")) } func Test_repoClone_group(t *testing.T) { names := []string{"cli-automated-testing/test", "cli-automated-testing/homebrew-testing"} urls := []string{"git@gitlab.com:cli-automated-testing/test.git", "git@gitlab.com:cli-automated-testing/homebrew-testing.git"} repoCloneTest(t, names, urls, 0, false) } func Test_repoClone_group_single(t *testing.T) { names := []string{"cli-automated-testing/test"} urls := []string{"git@gitlab.com:cli-automated-testing/test.git"} repoCloneTest(t, names, urls, 1, false) } func Test_repoClone_group_paginate(t *testing.T) { names := []string{"cli-automated-testing/test", "cli-automated-testing/homebrew-testing"} urls := []string{"git@gitlab.com:cli-automated-testing/test.git", "git@gitlab.com:cli-automated-testing/homebrew-testing.git"} repoCloneTest(t, names, urls, 1, true) } func repoCloneTest(t *testing.T, expectedRepoNames []string, expectedRepoUrls []string, perPage int, paginate bool) { assert.Equal(t, len(expectedRepoNames), len(expectedRepoUrls)) defer config.StubConfig(` hosts: gitlab.com: token: qRC87Xg9Wd46RhB8J8sp `, "")() t.Setenv("GITLAB_TOKEN", "") io, stdin, stdout, stderr := iostreams.Test() fac := &cmdutils.Factory{ IO: io, Config: func() (config.Config, error) { return config.ParseConfig("config.yml") }, } cs, restore := test.InitCmdStubber() for i := 0; i < len(expectedRepoUrls); i++ { cs.Stub("") } defer restore() cmd := NewCmdClone(fac, nil) cli := "-g cli-automated-testing" if perPage != 0 { cli += fmt.Sprintf(" --per-page %d", perPage) } if paginate { cli += " --paginate" } // TODO: stub api.ListGroupProjects endpoint out, err := runCommand(cmd, cli, stdin, stdout, stderr) if err != nil { t.Errorf("unexpected error: %q", err) return } assert.Equal(t, "✓ "+strings.Join(expectedRepoNames, "\n✓ ")+"\n", out.String()) assert.Equal(t, "", out.Stderr()) assert.Equal(t, len(expectedRepoUrls), cs.Count) for i := 0; i < len(expectedRepoUrls); i++ { assert.Equal(t, fmt.Sprintf("git clone %s", expectedRepoUrls[i]), strings.Join(cs.Calls[i].Args, " ")) } } Loading
commands/project/clone/repo_clone_integration_test.go 0 → 100644 +111 −0 Original line number Diff line number Diff line package clone import ( "fmt" "strings" "testing" "gitlab.com/gitlab-org/cli/pkg/iostreams" "gitlab.com/gitlab-org/cli/commands/cmdutils" "gitlab.com/gitlab-org/cli/internal/config" "gitlab.com/gitlab-org/cli/test" "github.com/stretchr/testify/assert" ) func Test_repoClone_Integration(t *testing.T) { glTestHost := test.GetHostOrSkip(t) t.Setenv("GITLAB_HOST", glTestHost) io, stdin, stdout, stderr := iostreams.Test() fac := &cmdutils.Factory{ IO: io, Config: func() (config.Config, error) { return config.NewBlankConfig(), nil }, } cs, restore := test.InitCmdStubber() // git clone cs.Stub("") // git remote add cs.Stub("") defer restore() cmd := NewCmdClone(fac, nil) out, err := runCommand(cmd, "test", stdin, stdout, stderr) if err != nil { t.Errorf("unexpected error: %q", err) return } assert.Equal(t, "", out.String()) assert.Equal(t, "", out.Stderr()) assert.Equal(t, 1, cs.Count) assert.Equal(t, "git clone git@gitlab.com:clemsbot/test.git", strings.Join(cs.Calls[0].Args, " ")) } func Test_repoClone_group_Integration(t *testing.T) { names := []string{"glab-cli/test", "glab-cli/test-pv"} urls := []string{"git@gitlab.com:glab-cli/test.git", "git@gitlab.com:glab-cli/test-pv.git"} repoCloneTest(t, names, urls, 0, false) } func Test_repoClone_group_single_Integration(t *testing.T) { names := []string{"glab-cli/test"} urls := []string{"git@gitlab.com:glab-cli/test.git"} repoCloneTest(t, names, urls, 1, false) } func Test_repoClone_group_paginate_Integration(t *testing.T) { names := []string{"glab-cli/test", "glab-cli/test-pv"} urls := []string{"git@gitlab.com:glab-cli/test.git", "git@gitlab.com:glab-cli/test-pv.git"} repoCloneTest(t, names, urls, 1, true) } func repoCloneTest(t *testing.T, expectedRepoNames []string, expectedRepoUrls []string, perPage int, paginate bool) { assert.Equal(t, len(expectedRepoNames), len(expectedRepoUrls)) glTestHost := test.GetHostOrSkip(t) t.Setenv("GITLAB_HOST", glTestHost) io, stdin, stdout, stderr := iostreams.Test() fac := &cmdutils.Factory{ IO: io, Config: func() (config.Config, error) { return config.NewBlankConfig(), nil }, } cs, restore := test.InitCmdStubber() for i := 0; i < len(expectedRepoUrls); i++ { cs.Stub("") } defer restore() cmd := NewCmdClone(fac, nil) cli := "-g glab-cli" if perPage != 0 { cli += fmt.Sprintf(" --per-page %d", perPage) } if paginate { cli += " --paginate" } // TODO: stub api.ListGroupProjects endpoint out, err := runCommand(cmd, cli, stdin, stdout, stderr) if err != nil { t.Errorf("unexpected error: %q", err) return } assert.Equal(t, "✓ "+strings.Join(expectedRepoNames, "\n✓ ")+"\n", out.String()) assert.Equal(t, "", out.Stderr()) assert.Equal(t, len(expectedRepoUrls), cs.Count) for i := 0; i < len(expectedRepoUrls); i++ { assert.Equal(t, fmt.Sprintf("git clone %s", expectedRepoUrls[i]), strings.Join(cs.Calls[i].Args, " ")) } }
commands/project/clone/repo_clone_test.go +0 −107 Original line number Diff line number Diff line Loading @@ -2,8 +2,6 @@ package clone import ( "bytes" "fmt" "strings" "testing" "gitlab.com/gitlab-org/cli/pkg/iostreams" Loading @@ -13,7 +11,6 @@ import ( "github.com/google/shlex" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/cli/commands/cmdutils" "gitlab.com/gitlab-org/cli/internal/config" "gitlab.com/gitlab-org/cli/test" "github.com/stretchr/testify/assert" Loading Loading @@ -145,107 +142,3 @@ func TestNewCmdClone(t *testing.T) { }) } } func Test_repoClone(t *testing.T) { defer config.StubConfig(` hosts: gitlab.com: token: qRC87Xg9Wd46RhB8J8sp `, "")() t.Setenv("GITLAB_TOKEN", "") io, stdin, stdout, stderr := iostreams.Test() fac := &cmdutils.Factory{ IO: io, Config: func() (config.Config, error) { return config.ParseConfig("config.yml") }, } cs, restore := test.InitCmdStubber() // git clone cs.Stub("") // git remote add cs.Stub("") defer restore() cmd := NewCmdClone(fac, nil) out, err := runCommand(cmd, "test", stdin, stdout, stderr) if err != nil { t.Errorf("unexpected error: %q", err) return } assert.Equal(t, "", out.String()) assert.Equal(t, "", out.Stderr()) assert.Equal(t, 1, cs.Count) assert.Equal(t, "git clone git@gitlab.com:clemsbot/test.git", strings.Join(cs.Calls[0].Args, " ")) } func Test_repoClone_group(t *testing.T) { names := []string{"cli-automated-testing/test", "cli-automated-testing/homebrew-testing"} urls := []string{"git@gitlab.com:cli-automated-testing/test.git", "git@gitlab.com:cli-automated-testing/homebrew-testing.git"} repoCloneTest(t, names, urls, 0, false) } func Test_repoClone_group_single(t *testing.T) { names := []string{"cli-automated-testing/test"} urls := []string{"git@gitlab.com:cli-automated-testing/test.git"} repoCloneTest(t, names, urls, 1, false) } func Test_repoClone_group_paginate(t *testing.T) { names := []string{"cli-automated-testing/test", "cli-automated-testing/homebrew-testing"} urls := []string{"git@gitlab.com:cli-automated-testing/test.git", "git@gitlab.com:cli-automated-testing/homebrew-testing.git"} repoCloneTest(t, names, urls, 1, true) } func repoCloneTest(t *testing.T, expectedRepoNames []string, expectedRepoUrls []string, perPage int, paginate bool) { assert.Equal(t, len(expectedRepoNames), len(expectedRepoUrls)) defer config.StubConfig(` hosts: gitlab.com: token: qRC87Xg9Wd46RhB8J8sp `, "")() t.Setenv("GITLAB_TOKEN", "") io, stdin, stdout, stderr := iostreams.Test() fac := &cmdutils.Factory{ IO: io, Config: func() (config.Config, error) { return config.ParseConfig("config.yml") }, } cs, restore := test.InitCmdStubber() for i := 0; i < len(expectedRepoUrls); i++ { cs.Stub("") } defer restore() cmd := NewCmdClone(fac, nil) cli := "-g cli-automated-testing" if perPage != 0 { cli += fmt.Sprintf(" --per-page %d", perPage) } if paginate { cli += " --paginate" } // TODO: stub api.ListGroupProjects endpoint out, err := runCommand(cmd, cli, stdin, stdout, stderr) if err != nil { t.Errorf("unexpected error: %q", err) return } assert.Equal(t, "✓ "+strings.Join(expectedRepoNames, "\n✓ ")+"\n", out.String()) assert.Equal(t, "", out.Stderr()) assert.Equal(t, len(expectedRepoUrls), cs.Count) for i := 0; i < len(expectedRepoUrls); i++ { assert.Equal(t, fmt.Sprintf("git clone %s", expectedRepoUrls[i]), strings.Join(cs.Calls[i].Args, " ")) } }