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

     1  //go:build unit
     2  // +build unit
     3  
     4  package cnbutils_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/SAP/jenkins-library/pkg/cnbutils"
    10  	"github.com/SAP/jenkins-library/pkg/mock"
    11  	ignore "github.com/sabhiram/go-gitignore"
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestCopyProject(t *testing.T) {
    16  	t.Run("copies file according to doublestart globs", func(t *testing.T) {
    17  		mockUtils := &cnbutils.MockUtils{
    18  			FilesMock: &mock.FilesMock{},
    19  		}
    20  		mockUtils.AddFile("workdir/src/test.yaml", []byte(""))
    21  		mockUtils.AddFile("workdir/src/subdir1/test2.yaml", []byte(""))
    22  		mockUtils.AddFile("workdir/src/subdir1/subdir2/test3.yaml", []byte(""))
    23  		err := cnbutils.CopyProject("workdir/src", "/dest", ignore.CompileIgnoreLines([]string{"**/*.yaml"}...), nil, mockUtils)
    24  		assert.NoError(t, err)
    25  		assert.True(t, mockUtils.HasCopiedFile("workdir/src/test.yaml", "/dest/test.yaml"))
    26  		assert.True(t, mockUtils.HasCopiedFile("workdir/src/subdir1/test2.yaml", "/dest/subdir1/test2.yaml"))
    27  		assert.True(t, mockUtils.HasCopiedFile("workdir/src/subdir1/subdir2/test3.yaml", "/dest/subdir1/subdir2/test3.yaml"))
    28  	})
    29  
    30  	t.Run("copies file according to simple globs", func(t *testing.T) {
    31  		mockUtils := &cnbutils.MockUtils{
    32  			FilesMock: &mock.FilesMock{},
    33  		}
    34  		mockUtils.AddFile("src/test.yaml", []byte(""))
    35  		err := cnbutils.CopyProject("src", "/dest", ignore.CompileIgnoreLines([]string{"*.yaml"}...), nil, mockUtils)
    36  		assert.NoError(t, err)
    37  		assert.True(t, mockUtils.HasCopiedFile("src/test.yaml", "/dest/test.yaml"))
    38  	})
    39  }