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 }