@@ -313,6 +313,61 @@ func TestGitGetter_GetFile(t *testing.T) {
313313 testing_helper .AssertContents (t , dst , "hello" )
314314}
315315
316+ func TestGitGetter_githubGetWithFileMode (t * testing.T ) {
317+ if ! testHasGit {
318+ t .Skip ("git not found, skipping" )
319+ }
320+
321+ ctx := context .Background ()
322+ dst := testing_helper .TempTestFile (t )
323+ defer os .RemoveAll (filepath .Dir (dst ))
324+
325+ req := Request {
326+ Src : "git::https://github.com/arikkfir/go-getter/testdata/basic/foo/main.tf?ref=master" ,
327+ Dst : dst ,
328+ GetMode : ModeFile ,
329+ }
330+
331+ var result * GetResult
332+ var err error
333+ var c Client
334+ if result , err = c .Get (ctx , & req ); err != nil {
335+ t .Fatalf ("err: %s" , err )
336+ } else if result .Dst != dst {
337+ t .Errorf ("result.Dst != dst (%s != %s)" , result .Dst , dst )
338+ }
339+
340+ // Verify the main file exists
341+ if _ , err := os .Stat (dst ); err != nil {
342+ t .Fatalf ("err: %s" , err )
343+ }
344+ testing_helper .AssertContents (t , dst , "# Hello\n " )
345+ }
346+
347+ func TestGitGetter_githubGetFile (t * testing.T ) {
348+ if ! testHasGit {
349+ t .Skip ("git not found, skipping" )
350+ }
351+
352+ ctx := context .Background ()
353+ dst := testing_helper .TempTestFile (t )
354+ defer os .RemoveAll (filepath .Dir (dst ))
355+
356+ var result * GetResult
357+ var err error
358+ if result , err = GetFile (ctx , dst , "git::https://github.com/arikkfir/go-getter/testdata/basic/foo/main.tf?ref=master" ); err != nil {
359+ t .Fatalf ("err: %s" , err )
360+ } else if result .Dst != dst {
361+ t .Errorf ("result.Dst != dst (%s != %s)" , result .Dst , dst )
362+ }
363+
364+ // Verify the main file exists
365+ if _ , err := os .Stat (dst ); err != nil {
366+ t .Fatalf ("err: %s" , err )
367+ }
368+ testing_helper .AssertContents (t , dst , "# Hello\n " )
369+ }
370+
316371func TestGitGetter_gitVersion (t * testing.T ) {
317372 if ! testHasGit {
318373 t .Skip ("git not found, skipping" )
0 commit comments