@@ -10,7 +10,7 @@ import (
1010 "github.com/openrundev/openrun/internal/testutil"
1111)
1212
13- func TestParseGithub (t * testing.T ) {
13+ func TestParseGitUrl (t * testing.T ) {
1414 tests := map [string ]struct {
1515 url string
1616 wantRepo string
@@ -21,16 +21,22 @@ func TestParseGithub(t *testing.T) {
2121 "org and repo only" : {url : "github.com/orgName/repoName" , wantRepo : "https://github.com/orgName/repoName" , wantFolder : "" , wantError : nil },
2222 "org, repo and folder" : {url : "http://github.com/orgName/repoName/folderName" , wantRepo : "http://github.com/orgName/repoName" , wantFolder : "folderName/" , wantError : nil },
2323 "org, repo and subfolders" : {url : "https://github.com/orgName/repoName/folderName/sub" , wantRepo : "https://github.com/orgName/repoName" , wantFolder : "folderName/sub/" , wantError : nil },
24- "giturl" : {url : "git@github.com:user/repo.git" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "" , wantError : nil },
25- "giturl and folder" : {url : "git@github.com:user/repo.git/folderName" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "folderName/" , wantError : nil },
26- "giturl and subfolders" : {url : "git@github.com:user/repo.git/folderName/sub" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "folderName/sub/" , wantError : nil },
27- "invalid giturl" : {url : "git@github.com:user" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: git@github.com:user/, expected git@github.com:orgName/repoName or git@github.com:orgName/repoName/folder" )},
28- "invalid url" : {url : "/orgName" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: https:///orgName/, expected github.com/orgName/repoName or github.com/orgName/repoName/folder" )},
24+ "gitlab group and subgroup and subfolders" : {url : "gitlab.com/g16004341/g2/pr1//app1" , wantRepo : "https://gitlab.com/g16004341/g2/pr1" , wantFolder : "app1/" , wantError : nil },
25+ "gitlab group and subgroup and subfolders2" : {url : "gitlab.com/g16004341/pr1//app1" , wantRepo : "https://gitlab.com/g16004341/pr1" , wantFolder : "app1/" , wantError : nil },
26+ "gitlab group and subgroup and subfolders3" : {url : "gitlab.com/g16004341/g2/pr1//" , wantRepo : "https://gitlab.com/g16004341/g2/pr1" , wantFolder : "" , wantError : nil },
27+ "giturl" : {url : "git@github.com:user/repo.git" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "" , wantError : nil },
28+ "giturl and folder" : {url : "git@github.com:user/repo.git/folderName" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "folderName/" , wantError : nil },
29+ "giturl and subfolders" : {url : "git@github.com:user/repo.git/folderName/sub" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "folderName/sub/" , wantError : nil },
30+ "gitlab with subfolders" : {url : "git@github.com:user/g1/g2/repo.git//folderName/sub" , wantRepo : "git@github.com:user/g1/g2/repo.git" , wantFolder : "folderName/sub/" , wantError : nil },
31+ "gitlab with subfolders2" : {url : "git@github.com:user/repo.git//sub" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "sub/" , wantError : nil },
32+ "gitlab with subfolders3" : {url : "git@github.com:user/g1/repo.git//" , wantRepo : "git@github.com:user/g1/repo.git" , wantFolder : "" , wantError : nil },
33+ "invalid giturl" : {url : "git@github.com:user" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: git@github.com:user/, expected git@github.com:orgName/repoName or git@github.com:orgName/repoName/folder" )},
34+ "invalid url" : {url : "/orgName" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: https:///orgName/, expected github.com/orgName/repoName or github.com/orgName/repoName/folder" )},
2935 }
3036
3137 for name , tc := range tests {
3238 t .Run (name , func (t * testing.T ) {
33- gotRepo , gotFolder , gotError := parseGithubUrl (tc .url , false )
39+ gotRepo , gotFolder , gotError := parseGitUrl (tc .url , false )
3440 testutil .AssertEqualsString (t , "repo" , gotRepo , tc .wantRepo )
3541 testutil .AssertEqualsString (t , "folder" , gotFolder , tc .wantFolder )
3642 testutil .AssertEqualsError (t , "error" , gotError , tc .wantError )
@@ -45,20 +51,22 @@ func TestParseGithubAuth(t *testing.T) {
4551 wantFolder string
4652 wantError error
4753 }{
48- "blank" : {url : "" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: https:///, expected github.com/orgName/repoName or github.com/orgName/repoName/folder" )},
49- "org and repo only" : {url : "github.com/orgName/repoName" , wantRepo : "git@github.com:orgName/repoName.git" , wantFolder : "" , wantError : nil },
50- "org, repo and folder" : {url : "http://github.com/orgName/repoName/folderName" , wantRepo : "git@github.com:orgName/repoName.git" , wantFolder : "folderName/" , wantError : nil },
51- "org, repo and subfolders" : {url : "https://github.com/orgName/repoName/folderName/sub" , wantRepo : "git@github.com:orgName/repoName.git" , wantFolder : "folderName/sub/" , wantError : nil },
52- "giturl" : {url : "git@github.com:user/repo.git" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "" , wantError : nil },
53- "giturl and folder" : {url : "git@github.com:user/repo.git/folderName" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "folderName/" , wantError : nil },
54- "giturl and subfolders" : {url : "git@github.com:user/repo.git/folderName/sub" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "folderName/sub/" , wantError : nil },
55- "invalid giturl" : {url : "git@github.com:user" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: git@github.com:user/, expected git@github.com:orgName/repoName or git@github.com:orgName/repoName/folder" )},
56- "invalid url" : {url : "/orgName" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: https:///orgName/, expected github.com/orgName/repoName or github.com/orgName/repoName/folder" )},
54+ "blank" : {url : "" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: https:///, expected github.com/orgName/repoName or github.com/orgName/repoName/folder" )},
55+ "org and repo only" : {url : "github.com/orgName/repoName" , wantRepo : "git@github.com:orgName/repoName.git" , wantFolder : "" , wantError : nil },
56+ "org, repo and folder" : {url : "http://github.com/orgName/repoName/folderName" , wantRepo : "git@github.com:orgName/repoName.git" , wantFolder : "folderName/" , wantError : nil },
57+ "org, repo and subfolders" : {url : "https://github.com/orgName/repoName/folderName/sub" , wantRepo : "git@github.com:orgName/repoName.git" , wantFolder : "folderName/sub/" , wantError : nil },
58+ "gitlab http with subfolders" : {url : "https://github.com/orgName/g1/repoName//folderName/sub" , wantRepo : "git@github.com:orgName/g1/repoName.git" , wantFolder : "folderName/sub/" , wantError : nil },
59+ "giturl" : {url : "git@github.com:user/repo.git" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "" , wantError : nil },
60+ "giturl and folder" : {url : "git@github.com:user/repo.git/folderName" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "folderName/" , wantError : nil },
61+ "giturl and subfolders" : {url : "git@github.com:user/repo.git/folderName/sub" , wantRepo : "git@github.com:user/repo.git" , wantFolder : "folderName/sub/" , wantError : nil },
62+ "gitlab with subfolders" : {url : "git@github.com:user/g1/repo.git//folderName/sub" , wantRepo : "git@github.com:user/g1/repo.git" , wantFolder : "folderName/sub/" , wantError : nil },
63+ "invalid giturl" : {url : "git@github.com:user" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: git@github.com:user/, expected git@github.com:orgName/repoName or git@github.com:orgName/repoName/folder" )},
64+ "invalid url" : {url : "/orgName" , wantRepo : "" , wantFolder : "" , wantError : fmt .Errorf ("invalid github url: https:///orgName/, expected github.com/orgName/repoName or github.com/orgName/repoName/folder" )},
5765 }
5866
5967 for name , tc := range tests {
6068 t .Run (name , func (t * testing.T ) {
61- gotRepo , gotFolder , gotError := parseGithubUrl (tc .url , true )
69+ gotRepo , gotFolder , gotError := parseGitUrl (tc .url , true )
6270 testutil .AssertEqualsString (t , "repo" , gotRepo , tc .wantRepo )
6371 testutil .AssertEqualsString (t , "folder" , gotFolder , tc .wantFolder )
6472 testutil .AssertEqualsError (t , "error" , gotError , tc .wantError )
0 commit comments