99 lines
2.2 KiB
Go
99 lines
2.2 KiB
Go
package transform
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/franela/goblin"
|
|
|
|
"github.com/drone/drone/yaml"
|
|
)
|
|
|
|
func TestWorkspace(t *testing.T) {
|
|
g := goblin.Goblin(t)
|
|
|
|
g.Describe("workspace", func() {
|
|
|
|
defaultBase := "/go"
|
|
defaultPath := "src/github.com/octocat/hello-world"
|
|
|
|
g.It("should not override user paths", func() {
|
|
base := "/drone"
|
|
path := "/drone/src/github.com/octocat/hello-world"
|
|
|
|
conf := &yaml.Config{
|
|
Workspace: &yaml.Workspace{
|
|
Base: base,
|
|
Path: path,
|
|
},
|
|
}
|
|
|
|
WorkspaceTransform(conf, defaultBase, defaultPath)
|
|
g.Assert(conf.Workspace.Base).Equal(base)
|
|
g.Assert(conf.Workspace.Path).Equal(path)
|
|
})
|
|
|
|
g.It("should convert user paths to absolute", func() {
|
|
base := "/drone"
|
|
path := "src/github.com/octocat/hello-world"
|
|
abs := "/drone/src/github.com/octocat/hello-world"
|
|
|
|
conf := &yaml.Config{
|
|
Workspace: &yaml.Workspace{
|
|
Base: base,
|
|
Path: path,
|
|
},
|
|
}
|
|
|
|
WorkspaceTransform(conf, defaultBase, defaultPath)
|
|
g.Assert(conf.Workspace.Base).Equal(base)
|
|
g.Assert(conf.Workspace.Path).Equal(abs)
|
|
})
|
|
|
|
g.It("should set the default path", func() {
|
|
var base = "/go"
|
|
var path = "/go/src/github.com/octocat/hello-world"
|
|
|
|
conf := &yaml.Config{}
|
|
|
|
WorkspaceTransform(conf, defaultBase, defaultPath)
|
|
g.Assert(conf.Workspace.Base).Equal(base)
|
|
g.Assert(conf.Workspace.Path).Equal(path)
|
|
})
|
|
|
|
g.It("should use workspace as working_dir", func() {
|
|
var base = "/drone"
|
|
var path = "/drone/src/github.com/octocat/hello-world"
|
|
|
|
conf := &yaml.Config{
|
|
Workspace: &yaml.Workspace{
|
|
Base: base,
|
|
Path: path,
|
|
},
|
|
Pipeline: []*yaml.Container{
|
|
{},
|
|
},
|
|
}
|
|
|
|
WorkspaceTransform(conf, defaultBase, defaultPath)
|
|
g.Assert(conf.Pipeline[0].WorkingDir).Equal(path)
|
|
})
|
|
|
|
g.It("should not use workspace as working_dir for services", func() {
|
|
var base = "/drone"
|
|
var path = "/drone/src/github.com/octocat/hello-world"
|
|
|
|
conf := &yaml.Config{
|
|
Workspace: &yaml.Workspace{
|
|
Base: base,
|
|
Path: path,
|
|
},
|
|
Services: []*yaml.Container{
|
|
{},
|
|
},
|
|
}
|
|
|
|
WorkspaceTransform(conf, defaultBase, defaultPath)
|
|
g.Assert(conf.Services[0].WorkingDir).Equal("")
|
|
})
|
|
})
|
|
}
|