github.com/someshkoli/terratest@v0.41.1/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/gruntwork-io/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  }