You've already forked agentic-coding-workflow
bugfix
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
package vcs
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestParseRepoRef_HTTPS(t *testing.T) {
|
||||
cases := []struct{ url, owner, name string }{
|
||||
{"https://git.jerryyan.net/owner/repo.git", "owner", "repo"},
|
||||
{"https://git.jerryyan.net/owner/repo", "owner", "repo"},
|
||||
{"http://git.jerryyan.net/acme/widgets.git", "acme", "widgets"},
|
||||
{"https://git.jerryyan.net:3000/owner/repo.git", "owner", "repo"},
|
||||
}
|
||||
for _, c := range cases {
|
||||
ref, err := ParseRepoRef(c.url, "git.jerryyan.net")
|
||||
require.NoError(t, err, c.url)
|
||||
assert.Equal(t, c.owner, ref.Owner, c.url)
|
||||
assert.Equal(t, c.name, ref.Name, c.url)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseRepoRef_SSHAndScp(t *testing.T) {
|
||||
cases := []struct{ url, owner, name string }{
|
||||
{"git@git.jerryyan.net:owner/repo.git", "owner", "repo"},
|
||||
{"git@git.jerryyan.net:owner/repo", "owner", "repo"},
|
||||
{"ssh://git@git.jerryyan.net/owner/repo.git", "owner", "repo"},
|
||||
}
|
||||
for _, c := range cases {
|
||||
ref, err := ParseRepoRef(c.url, "git.jerryyan.net")
|
||||
require.NoError(t, err, c.url)
|
||||
assert.Equal(t, c.owner, ref.Owner, c.url)
|
||||
assert.Equal(t, c.name, ref.Name, c.url)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseRepoRef_UnsupportedHost(t *testing.T) {
|
||||
_, err := ParseRepoRef("https://github.com/owner/repo.git", "git.jerryyan.net")
|
||||
require.ErrorIs(t, err, ErrUnsupportedHost)
|
||||
|
||||
_, err = ParseRepoRef("git@github.com:owner/repo.git", "git.jerryyan.net")
|
||||
require.ErrorIs(t, err, ErrUnsupportedHost)
|
||||
}
|
||||
|
||||
func TestParseRepoRef_Invalid(t *testing.T) {
|
||||
for _, bad := range []string{"", "not-a-url", "https://git.jerryyan.net/only-owner"} {
|
||||
_, err := ParseRepoRef(bad, "git.jerryyan.net")
|
||||
require.Error(t, err, bad)
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseRepoRef_HostAgnostic(t *testing.T) {
|
||||
// wantHost empty => skip host check
|
||||
ref, err := ParseRepoRef("https://github.com/owner/repo.git", "")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "owner", ref.Owner)
|
||||
assert.Equal(t, "repo", ref.Name)
|
||||
}
|
||||
Reference in New Issue
Block a user