github.com/cobalt77/jfrog-client-go@v0.14.5/utils/vcsdetails_test.go (about)

     1  package utils
     2  
     3  import (
     4  	"path/filepath"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  
     9  	"github.com/cobalt77/jfrog-client-go/utils/io/fileutils"
    10  )
    11  
    12  func TestVcsDetails(t *testing.T) {
    13  	projectPath, tmpDir := initVcsTestDir(t, filepath.Join("testdata", "vcs"))
    14  	defer fileutils.RemoveTempDir(tmpDir)
    15  	vcsDetails := NewVcsDetals()
    16  	revision, url, err := vcsDetails.GetVcsDetails(filepath.Join(projectPath))
    17  	assert.NoError(t, err)
    18  	assert.Equal(t, "https://github.com/jfrog/jfrog-cli.git", url)
    19  	assert.Equal(t, "d63c5957ad6819f4c02a817abe757f210d35ff92", revision)
    20  }
    21  
    22  func initVcsTestDir(t *testing.T, srcPath string) (projectPath, tmpDir string) {
    23  	var err error
    24  	tmpDir, err = fileutils.CreateTempDir()
    25  	assert.NoError(t, err)
    26  
    27  	err = fileutils.CopyDir(srcPath, tmpDir, true, nil)
    28  	assert.NoError(t, err)
    29  	if found, err := fileutils.IsDirExists(filepath.Join(tmpDir, "gitdata"), false); found {
    30  		assert.NoError(t, err)
    31  		err := fileutils.RenamePath(filepath.Join(tmpDir, "gitdata"), filepath.Join(tmpDir, ".git"))
    32  		assert.NoError(t, err)
    33  	}
    34  	if found, err := fileutils.IsDirExists(filepath.Join(tmpDir, "othergit", "gitdata"), false); found {
    35  		assert.NoError(t, err)
    36  		err := fileutils.RenamePath(filepath.Join(tmpDir, "othergit", "gitdata"), filepath.Join(tmpDir, "othergit", ".git"))
    37  		assert.NoError(t, err)
    38  	}
    39  	projectPath, err = filepath.Abs(tmpDir)
    40  	assert.NoError(t, err)
    41  	return projectPath, tmpDir
    42  }