woodpecker/yaml/transform/workspace_test.go
2016-05-09 22:57:57 -07:00

100 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("")
})
})
}