github.com/criteo/command-launcher@v0.0.0-20230407142452-fb616f546e98/internal/pkg/git-package_test.go (about) 1 package pkg 2 3 import ( 4 "os" 5 "os/exec" 6 "path/filepath" 7 "testing" 8 9 "github.com/criteo/command-launcher/internal/helper" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func createGitRepo(t *testing.T) string { 14 repoDir := filepath.Join(t.TempDir(), "folder-package") 15 err := os.Mkdir(repoDir, 0777) 16 assert.Nil(t, err) 17 18 commands := [...][]string{ 19 {"init"}, 20 {"add", "manifest.mf"}, 21 {"config", "user.email", "test@example.com"}, 22 {"config", "user.name", "tester"}, 23 {"commit", "-m", "initial import"}, 24 } 25 26 err = helper.CopyLocalFile("assets/folder-package/manifest.mf", filepath.Join(repoDir, "manifest.mf"), false) 27 assert.Nil(t, err) 28 29 for _, cmd := range commands { 30 ctx := exec.Command("git", cmd...) 31 ctx.Dir = repoDir 32 ctx.Stdout = os.Stdout 33 ctx.Stderr = os.Stderr 34 ctx.Stdin = os.Stdin 35 err = ctx.Run() 36 assert.Nil(t, err) 37 } 38 39 return repoDir 40 } 41 42 func TestGitRepo_Create_WrongRepo(t *testing.T) { 43 p, err := CreateGitRepoPackage("assets/folder-package") 44 assert.Nil(t, p) 45 assert.NotNil(t, err) 46 } 47 48 func TestGitRepo_Create(t *testing.T) { 49 repo := createGitRepo(t) 50 p, err := CreateGitRepoPackage(repo) 51 assert.NotNil(t, p) 52 assert.Nil(t, err) 53 54 assert.Equal(t, 1, len(p.Commands())) 55 assert.Equal(t, "fake_test", p.Name()) 56 } 57 58 func TestGitRepo_InstallTo(t *testing.T) { 59 repo := createGitRepo(t) 60 p, err := CreateGitRepoPackage(repo) 61 assert.NotNil(t, p) 62 assert.Nil(t, err) 63 64 targetDir := t.TempDir() 65 mf, err := p.InstallTo(targetDir) 66 assert.NotNil(t, mf) 67 assert.Nil(t, err) 68 69 _, err = os.Stat(filepath.Join(targetDir, "fake_test", "manifest.mf")) 70 assert.Nil(t, err) 71 }