67 lines
1.4 KiB
Go
67 lines
1.4 KiB
Go
package inject
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/franela/goblin"
|
|
)
|
|
|
|
func Test_Inject(t *testing.T) {
|
|
|
|
g := goblin.Goblin(t)
|
|
g.Describe("Inject params", func() {
|
|
|
|
g.It("Should replace vars with $$", func() {
|
|
s := "echo $$FOO $BAR"
|
|
m := map[string]string{}
|
|
m["FOO"] = "BAZ"
|
|
g.Assert("echo BAZ $BAR").Equal(Inject(s, m))
|
|
})
|
|
|
|
g.It("Should not replace vars with single $", func() {
|
|
s := "echo $FOO $BAR"
|
|
m := map[string]string{}
|
|
m["FOO"] = "BAZ"
|
|
g.Assert(s).Equal(Inject(s, m))
|
|
})
|
|
|
|
g.It("Should not replace vars in nil map", func() {
|
|
s := "echo $$FOO $BAR"
|
|
g.Assert(s).Equal(Inject(s, nil))
|
|
})
|
|
})
|
|
}
|
|
|
|
func Test_InjectSafe(t *testing.T) {
|
|
|
|
g := goblin.Goblin(t)
|
|
g.Describe("Safely Inject params", func() {
|
|
|
|
m := map[string]string{}
|
|
m["TOKEN"] = "FOO"
|
|
m["SECRET"] = "BAR"
|
|
c, _ := parse(InjectSafe(yml, m))
|
|
|
|
g.It("Should replace vars in notify section", func() {
|
|
g.Assert(c.Deploy["digital_ocean"].Config["token"]).Equal("FOO")
|
|
g.Assert(c.Deploy["digital_ocean"].Config["secret"]).Equal("BAR")
|
|
})
|
|
|
|
g.It("Should not replace vars in script section", func() {
|
|
g.Assert(c.Build.Config["commands"].([]interface{})[0]).Equal("echo $$TOKEN")
|
|
g.Assert(c.Build.Config["commands"].([]interface{})[1]).Equal("echo $$SECRET")
|
|
})
|
|
})
|
|
}
|
|
|
|
var yml = `
|
|
build:
|
|
image: foo
|
|
commands:
|
|
- echo $$TOKEN
|
|
- echo $$SECRET
|
|
deploy:
|
|
digital_ocean:
|
|
token: $$TOKEN
|
|
secret: $$SECRET
|
|
`
|