github.com/ahmet2mir/goreleaser@v0.180.3-0.20210927151101-8e5ee5a9b8c5/internal/git/config_test.go (about)

     1  package git_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/goreleaser/goreleaser/internal/git"
     7  	"github.com/goreleaser/goreleaser/internal/testlib"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestRepoName(t *testing.T) {
    12  	testlib.Mktmp(t)
    13  	testlib.GitInit(t)
    14  	testlib.GitRemoteAdd(t, "git@github.com:goreleaser/goreleaser.git")
    15  	repo, err := git.ExtractRepoFromConfig()
    16  	require.NoError(t, err)
    17  	require.Equal(t, "goreleaser/goreleaser", repo.String())
    18  }
    19  
    20  func TestRepoNameWithDifferentRemote(t *testing.T) {
    21  	testlib.Mktmp(t)
    22  	testlib.GitInit(t)
    23  	testlib.GitRemoteAddWithName(t, "upstream", "https://github.com/goreleaser/goreleaser.git")
    24  	_, err := git.Run("pull", "upstream", "master")
    25  	require.NoError(t, err)
    26  	_, err = git.Run("branch", "--set-upstream-to", "upstream/master")
    27  	require.NoError(t, err)
    28  	repo, err := git.ExtractRepoFromConfig()
    29  	require.NoError(t, err)
    30  	require.Equal(t, "goreleaser/goreleaser", repo.String())
    31  }
    32  
    33  func TestExtractRepoFromURL(t *testing.T) {
    34  	// valid urls
    35  	for _, url := range []string{
    36  		"git@github.com:goreleaser/goreleaser.git",
    37  		"git@custom:goreleaser/goreleaser.git",
    38  		"https://github.com/goreleaser/goreleaser.git",
    39  		"https://github.enterprise.com/goreleaser/goreleaser.git",
    40  	} {
    41  		t.Run(url, func(t *testing.T) {
    42  			repo, err := git.ExtractRepoFromURL(url)
    43  			require.NoError(t, err)
    44  			require.Equal(t, "goreleaser/goreleaser", repo.String())
    45  		})
    46  	}
    47  
    48  	// nested urls
    49  	for _, url := range []string{
    50  		"git@custom:group/nested/goreleaser/goreleaser.git",
    51  		"https://gitlab.mycompany.com/group/nested/goreleaser/goreleaser.git",
    52  	} {
    53  		t.Run(url, func(t *testing.T) {
    54  			repo, err := git.ExtractRepoFromURL(url)
    55  			require.NoError(t, err)
    56  			require.Equal(t, "group/nested/goreleaser/goreleaser", repo.String())
    57  		})
    58  	}
    59  
    60  	// invalid urls
    61  	for _, url := range []string{
    62  		"git@gist.github.com:someid.git",
    63  		"https://gist.github.com/someid.git",
    64  	} {
    65  		t.Run(url, func(t *testing.T) {
    66  			repo, err := git.ExtractRepoFromURL(url)
    67  			require.EqualError(t, err, "unsupported repository URL: "+url)
    68  			require.Equal(t, "", repo.String())
    69  		})
    70  	}
    71  }