github.com/hashicorp/go-getter/v2@v2.2.2/detect_git_test.go (about) 1 package getter 2 3 import ( 4 "testing" 5 ) 6 7 func TestGitDetector(t *testing.T) { 8 cases := []struct { 9 Input string 10 Output string 11 }{ 12 { 13 "git@github.com:hashicorp/foo.git", 14 "git::ssh://git@github.com/hashicorp/foo.git", 15 }, 16 { 17 "git@github.com:org/project.git?ref=test-branch", 18 "git::ssh://git@github.com/org/project.git?ref=test-branch", 19 }, 20 { 21 "git@github.com:hashicorp/foo.git//bar", 22 "git::ssh://git@github.com/hashicorp/foo.git//bar", 23 }, 24 { 25 "git@github.com:hashicorp/foo.git?foo=bar", 26 "git::ssh://git@github.com/hashicorp/foo.git?foo=bar", 27 }, 28 { 29 "git@github.xyz.com:org/project.git", 30 "git::ssh://git@github.xyz.com/org/project.git", 31 }, 32 { 33 "git@github.xyz.com:org/project.git?ref=test-branch", 34 "git::ssh://git@github.xyz.com/org/project.git?ref=test-branch", 35 }, 36 { 37 "git@github.xyz.com:org/project.git//module/a", 38 "git::ssh://git@github.xyz.com/org/project.git//module/a", 39 }, 40 { 41 "git@github.xyz.com:org/project.git//module/a?ref=test-branch", 42 "git::ssh://git@github.xyz.com/org/project.git//module/a?ref=test-branch", 43 }, 44 } 45 46 pwd := "/pwd" 47 f := new(GitDetector) 48 for i, tc := range cases { 49 t.Run(tc.Input, func(t *testing.T) { 50 out, ok, err := f.Detect(tc.Input, pwd) 51 if err != nil { 52 t.Fatalf("%d: err: %s", i, err) 53 } 54 if !ok { 55 t.Fatal("not ok") 56 } 57 58 if out != tc.Output { 59 t.Fatalf("%d: bad: %#v", i, out) 60 } 61 }) 62 } 63 }