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  }