go-devops/cmd/setup/cmd_repo_test.go

53 lines
1.7 KiB
Go
Raw Permalink Normal View History

package setup
import (
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/require"
)
func TestRunRepoSetup_CreatesCoreConfigs(t *testing.T) {
dir := t.TempDir()
require.NoError(t, os.WriteFile(filepath.Join(dir, "go.mod"), []byte("module example.com/test\n"), 0o644))
require.NoError(t, runRepoSetup(dir, false))
for _, name := range []string{"build.yaml", "release.yaml", "test.yaml"} {
path := filepath.Join(dir, ".core", name)
_, err := os.Stat(path)
require.NoErrorf(t, err, "expected %s to exist", path)
}
}
func TestDetectProjectType_PrefersPackageOverComposer(t *testing.T) {
dir := t.TempDir()
require.NoError(t, os.WriteFile(filepath.Join(dir, "package.json"), []byte("{}\n"), 0o644))
require.NoError(t, os.WriteFile(filepath.Join(dir, "composer.json"), []byte("{}\n"), 0o644))
require.Equal(t, "node", detectProjectType(dir))
}
func TestParseGitHubRepoURL_Good(t *testing.T) {
cases := map[string]string{
"git@github.com:owner/repo.git": "owner/repo",
"ssh://git@github.com/owner/repo.git": "owner/repo",
"https://github.com/owner/repo.git": "owner/repo",
"git://github.com/owner/repo.git": "owner/repo",
"https://www.github.com/owner/repo": "owner/repo",
"git@github.com:owner/nested/repo.git": "owner/nested/repo",
"ssh://git@github.com/owner/nested/repo/": "owner/nested/repo",
"ssh://git@github.com:443/owner/repo.git": "owner/repo",
"https://example.com/owner/repo.git": "",
"git@bitbucket.org:owner/repo.git": "",
" ssh://git@github.com/owner/repo.git ": "owner/repo",
}
for remote, expected := range cases {
t.Run(remote, func(t *testing.T) {
require.Equal(t, expected, parseGitHubRepoURL(remote))
})
}
}