246 lines
5.1 KiB
Go
246 lines
5.1 KiB
Go
package utils
|
|
|
|
import (
|
|
"testing"
|
|
|
|
corev1 "k8s.io/api/core/v1"
|
|
)
|
|
|
|
func TestTplName(t *testing.T) {
|
|
tests := []struct {
|
|
name string // description of this test case
|
|
// Named input parameters for target function.
|
|
serviceName string
|
|
appname string
|
|
suffix []string
|
|
want string
|
|
}{
|
|
{"simple test without suffix", "foosvc", "myapp", nil, `{{ include "myapp.fullname" . }}-foosvc`},
|
|
{"simple test with suffix", "foosvc", "myapp", []string{"bar"}, `{{ include "myapp.fullname" . }}-foosvc-bar`},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := TplName(tt.serviceName, tt.appname, tt.suffix...)
|
|
if got != tt.want {
|
|
t.Errorf("TplName() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestCountStartingSpaces(t *testing.T) {
|
|
tests := []struct {
|
|
name string // description of this test case
|
|
// Named input parameters for target function.
|
|
line string
|
|
want int
|
|
}{
|
|
{
|
|
"test no spaces",
|
|
"the line is here",
|
|
0,
|
|
},
|
|
{
|
|
"test with 4 spaces",
|
|
" line with 4 spaces",
|
|
4,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := CountStartingSpaces(tt.line)
|
|
if got != tt.want {
|
|
t.Errorf("CountStartingSpaces() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestGetKind(t *testing.T) {
|
|
tests := []struct {
|
|
name string // description of this test case
|
|
// Named input parameters for target function.
|
|
path string
|
|
want string
|
|
}{
|
|
{
|
|
"test get kind from file path",
|
|
"my.deployment.yaml",
|
|
"deployment",
|
|
},
|
|
{
|
|
"test with 2 parts",
|
|
"service.yaml",
|
|
"service",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := GetKind(tt.path)
|
|
if got != tt.want {
|
|
t.Errorf("GetKind() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestWrap(t *testing.T) {
|
|
tests := []struct {
|
|
name string // description of this test case
|
|
// Named input parameters for target function.
|
|
src string
|
|
above string
|
|
below string
|
|
want string
|
|
}{
|
|
{
|
|
"test a simple wrap",
|
|
" - foo: bar",
|
|
"line above",
|
|
"line below",
|
|
" line above\n - foo: bar\n line below",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := Wrap(tt.src, tt.above, tt.below)
|
|
if got != tt.want {
|
|
t.Errorf("Wrap() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestGetServiceNameByPort(t *testing.T) {
|
|
tests := []struct {
|
|
name string // description of this test case
|
|
// Named input parameters for target function.
|
|
port int
|
|
want string
|
|
}{
|
|
{
|
|
"test http port by service number 80",
|
|
80,
|
|
"http",
|
|
},
|
|
{
|
|
"test with a port that has no service name",
|
|
8745,
|
|
"",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := GetServiceNameByPort(tt.port)
|
|
if got != tt.want {
|
|
t.Errorf("GetServiceNameByPort() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestGetContainerByName(t *testing.T) {
|
|
httpContainer := &corev1.Container{
|
|
Name: "http",
|
|
}
|
|
mariadbContainer := &corev1.Container{
|
|
Name: "mariadb",
|
|
}
|
|
|
|
tests := []struct {
|
|
name string // description of this test case
|
|
// Named input parameters for target function.
|
|
containerName string
|
|
containers []corev1.Container
|
|
want *corev1.Container
|
|
want2 int
|
|
}{
|
|
{
|
|
"get container from by name",
|
|
"http",
|
|
[]corev1.Container{
|
|
*httpContainer,
|
|
*mariadbContainer,
|
|
},
|
|
httpContainer, 0,
|
|
},
|
|
{
|
|
"get container from by name",
|
|
"mariadb",
|
|
[]corev1.Container{
|
|
*httpContainer,
|
|
*mariadbContainer,
|
|
},
|
|
mariadbContainer, 1,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, got2 := GetContainerByName(tt.containerName, tt.containers)
|
|
if got.Name != tt.want.Name {
|
|
t.Errorf("GetContainerByName() = %v, want %v", got.Name, tt.want.Name)
|
|
}
|
|
if got2 != tt.want2 {
|
|
t.Errorf("GetContainerByName() = %v, want %v", got2, tt.want2)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestTplValue(t *testing.T) {
|
|
tests := []struct {
|
|
name string // description of this test case
|
|
// Named input parameters for target function.
|
|
serviceName string
|
|
variable string
|
|
pipes []string
|
|
want string
|
|
}{
|
|
{
|
|
"check simple template value",
|
|
"foosvc",
|
|
"variableFoo",
|
|
nil,
|
|
"{{ tpl .Values.foosvc.variableFoo $ }}",
|
|
},
|
|
{
|
|
"check with pipes",
|
|
"foosvc",
|
|
"bar",
|
|
[]string{"toYaml", "nindent 2"},
|
|
"{{ tpl .Values.foosvc.bar $ | toYaml | nindent 2 }}",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := TplValue(tt.serviceName, tt.variable, tt.pipes...)
|
|
if got != tt.want {
|
|
t.Errorf("TplValue() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestPathToName(t *testing.T) {
|
|
tests := []struct {
|
|
name string // description of this test case
|
|
// Named input parameters for target function.
|
|
path string
|
|
want string
|
|
}{
|
|
{
|
|
"check complete path with various characters",
|
|
"./foo/bar.test/and_bad_name",
|
|
"foo-bar-test-and-bad-name",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := PathToName(tt.path)
|
|
if got != tt.want {
|
|
t.Errorf("PathToName() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|