github.com/jaylevin/jenkins-library@v1.230.4/pkg/cnbutils/project/resolve_path_test.go (about) 1 package project_test 2 3 import ( 4 "path/filepath" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 10 "github.com/SAP/jenkins-library/pkg/cnbutils" 11 "github.com/SAP/jenkins-library/pkg/cnbutils/project" 12 "github.com/SAP/jenkins-library/pkg/mock" 13 ) 14 15 func TestResolvePath(t *testing.T) { 16 t.Run("project descriptor and no path is maintained, it is located in the root", func(t *testing.T) { 17 utils := &cnbutils.MockUtils{ 18 FilesMock: &mock.FilesMock{}, 19 } 20 utils.AddFile("project.toml", []byte("")) 21 22 location, err := project.ResolvePath("project.toml", "", utils) 23 require.NoError(t, err) 24 25 assert.Equal(t, "project.toml", location) 26 }) 27 28 t.Run("project descriptor and path is is a file, it is located in the root", func(t *testing.T) { 29 utils := &cnbutils.MockUtils{ 30 FilesMock: &mock.FilesMock{}, 31 } 32 utils.CurrentDir = "/workdir" 33 utils.AddFile("project.toml", []byte("")) 34 utils.AddFile("test/file.zip", []byte("")) 35 36 location, err := project.ResolvePath("project.toml", "test/file.zip", utils) 37 require.NoError(t, err) 38 39 assert.Equal(t, "/workdir/project.toml", location) 40 }) 41 42 t.Run("project descriptor and path is is a dir, it is located in the path", func(t *testing.T) { 43 utils := &cnbutils.MockUtils{ 44 FilesMock: &mock.FilesMock{}, 45 } 46 utils.AddFile("test/project.toml", []byte("")) 47 48 location, err := project.ResolvePath("project.toml", "test", utils) 49 require.NoError(t, err) 50 51 assert.Equal(t, filepath.Join("test", "project.toml"), location) 52 }) 53 54 t.Run("project descriptor does not exist, empty string", func(t *testing.T) { 55 utils := &cnbutils.MockUtils{ 56 FilesMock: &mock.FilesMock{}, 57 } 58 location, err := project.ResolvePath("project.toml", "", utils) 59 require.NoError(t, err) 60 61 assert.Equal(t, "", location) 62 }) 63 }