github.com/jaylevin/jenkins-library@v1.230.4/pkg/cnbutils/project/metadata/metadata_test.go (about)

     1  package metadata
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"path/filepath"
     7  	"testing"
     8  
     9  	"github.com/SAP/jenkins-library/pkg/cnbutils"
    10  	"github.com/SAP/jenkins-library/pkg/mock"
    11  	"github.com/SAP/jenkins-library/pkg/piperutils"
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestWriteProjectMetadata(t *testing.T) {
    16  	expectedResult := `
    17  [source]
    18    type = "git"
    19  
    20    [source.metadata]
    21      refs = ["main"]
    22  
    23    [source.version]
    24      commit = "012548"
    25      describe = "test-commit"
    26  `
    27  	mockUtils := &cnbutils.MockUtils{
    28  		ExecMockRunner: &mock.ExecMockRunner{},
    29  		FilesMock:      &mock.FilesMock{},
    30  	}
    31  
    32  	fileutils := piperutils.Files{}
    33  
    34  	cpeFiles := map[string]string{
    35  		"headCommitId":  "012548",
    36  		"commitMessage": "test-commit",
    37  		"branch":        "main",
    38  	}
    39  
    40  	dir, err := ioutil.TempDir("", "")
    41  	assert.NoError(t, err)
    42  	err = os.MkdirAll(filepath.Join(dir, "commonPipelineEnvironment", "git"), os.ModePerm)
    43  	assert.NoError(t, err)
    44  	defer os.RemoveAll(dir)
    45  
    46  	for file, content := range cpeFiles {
    47  		err = fileutils.FileWrite(filepath.Join(dir, "commonPipelineEnvironment", "git", file), []byte(content), os.ModePerm)
    48  		assert.NoError(t, err)
    49  	}
    50  
    51  	WriteProjectMetadata(dir, mockUtils)
    52  	assert.True(t, mockUtils.HasWrittenFile(metadataFilePath))
    53  	result, err := mockUtils.FileRead(metadataFilePath)
    54  	assert.NoError(t, err)
    55  	assert.Equal(t, expectedResult, string(result))
    56  }