github.com/mponton/terratest@v0.44.0/modules/git/git_test.go (about) 1 package git 2 3 import ( 4 "os" 5 "os/exec" 6 "path/filepath" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func testGetCurrentBranchNameReturnsBranchName(t *testing.T) { 14 err := exec.Command("git", "checkout", "master").Run() 15 require.NoError(t, err) 16 17 name := GetCurrentBranchName(t) 18 19 assert.Equal(t, "master", name) 20 } 21 22 func testGetCurrentBranchNameReturnsEmptyForDetachedState(t *testing.T) { 23 err := exec.Command("git", "checkout", "v0.0.1").Run() 24 assert.Nil(t, err) 25 26 name := GetCurrentBranchName(t) 27 28 assert.Empty(t, name) 29 } 30 31 func testGetCurrentRefReturnsBranchName(t *testing.T) { 32 err := exec.Command("git", "checkout", "master").Run() 33 require.NoError(t, err) 34 35 name := GetCurrentGitRef(t) 36 37 assert.Equal(t, "master", name) 38 } 39 40 func testGetCurrentRefReturnsTagValue(t *testing.T) { 41 err := exec.Command("git", "checkout", "v0.0.1").Run() 42 require.NoError(t, err) 43 44 name := GetCurrentGitRef(t) 45 46 assert.Equal(t, "v0.0.1", name) 47 } 48 49 func testGetCurrentRefReturnsLightTagValue(t *testing.T) { 50 err := exec.Command("git", "checkout", "58d3ea8").Run() 51 require.NoError(t, err) 52 53 name := GetCurrentGitRef(t) 54 55 assert.Equal(t, "v0.0.1-1-g58d3ea8f", name) 56 } 57 58 func TestGitRefChecks(t *testing.T) { 59 t.Parallel() 60 61 tmpdir := t.TempDir() 62 gitWorkDir := filepath.Join(tmpdir, "terratest") 63 64 url := "https://github.com/mponton/terratest.git" 65 err := exec.Command("git", "clone", url, gitWorkDir).Run() 66 require.NoError(t, err) 67 68 err = os.Chdir(gitWorkDir) 69 require.NoError(t, err) 70 71 t.Run("GetCurrentBranchNameReturnsBranchName", testGetCurrentBranchNameReturnsBranchName) 72 t.Run("GetCurrentBranchNameReturnsEmptyForDetachedState", testGetCurrentBranchNameReturnsEmptyForDetachedState) 73 t.Run("GetCurrentRefReturnsBranchName", testGetCurrentRefReturnsBranchName) 74 t.Run("GetCurrentRefReturnsTagValue", testGetCurrentRefReturnsTagValue) 75 t.Run("GetCurrentRefReturnsLightTagValue", testGetCurrentRefReturnsLightTagValue) 76 } 77 78 func TestGetRepoRoot(t *testing.T) { 79 t.Parallel() 80 81 cwd, err := os.Getwd() 82 require.NoError(t, err) 83 expectedRepoRoot, err := filepath.Abs(filepath.Join(cwd, "..", "..")) 84 require.NoError(t, err) 85 86 repoRoot := GetRepoRoot(t) 87 assert.Equal(t, expectedRepoRoot, repoRoot) 88 }