github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/cnbutils/project/metadata/metadata_test.go (about)

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