feat(tests): Add tests for label structures
This commit is contained in:
17
generator/labels/labelstructs/configMap_test.go
Normal file
17
generator/labels/labelstructs/configMap_test.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package labelstructs_test
|
||||
|
||||
import (
|
||||
"katenary/generator/labels/labelstructs"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestConfigMapFileFrom(t *testing.T) {
|
||||
ts := "- foo/bar"
|
||||
tc2, _ := labelstructs.ConfigMapFileFrom(ts)
|
||||
if len(tc2) != 1 {
|
||||
t.Errorf("Expected ConfigMapFile to have 1 item, got %d", len(tc2))
|
||||
}
|
||||
if tc2[0] != "foo/bar" {
|
||||
t.Errorf("Expected ConfigMapFile to contain 'foo/bar', got %s", tc2[0])
|
||||
}
|
||||
}
|
25
generator/labels/labelstructs/cronJob_test.go
Normal file
25
generator/labels/labelstructs/cronJob_test.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package labelstructs
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestCronJobFrom(t *testing.T) {
|
||||
ts := `
|
||||
image: fooimage
|
||||
command: thecommand
|
||||
schedule: "0/3 0 * * *"
|
||||
Rbac: false
|
||||
`
|
||||
tc, _ := CronJobFrom(ts)
|
||||
if tc.Image != "fooimage" {
|
||||
t.Errorf("Expected CronJob image to be 'fooimage', got %s", tc.Image)
|
||||
}
|
||||
if tc.Command != "thecommand" {
|
||||
t.Errorf("Expected CronJob command to be 'thecommand', got %s", tc.Command)
|
||||
}
|
||||
if tc.Schedule != "0/3 0 * * *" {
|
||||
t.Errorf("Expected CronJob schedule to be '0/3 0 * * *', got %s", tc.Schedule)
|
||||
}
|
||||
if tc.Rbac != false {
|
||||
t.Errorf("Expected CronJob rbac to be false, got %t", tc.Rbac)
|
||||
}
|
||||
}
|
14
generator/labels/labelstructs/dependencies_test.go
Normal file
14
generator/labels/labelstructs/dependencies_test.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package labelstructs
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestDependenciesLabel(t *testing.T) {
|
||||
ts := "- name: mongodb"
|
||||
tc, _ := DependenciesFrom(ts)
|
||||
if len(tc) != 1 {
|
||||
t.Errorf("Expected DependenciesLabel to have 1 item, got %d", len(tc))
|
||||
}
|
||||
if tc[0].Name != "mongodb" {
|
||||
t.Errorf("Expected DependenciesLabel to contain 'mongodb', got %s", tc[0].Name)
|
||||
}
|
||||
}
|
17
generator/labels/labelstructs/envFrom_test.go
Normal file
17
generator/labels/labelstructs/envFrom_test.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package labelstructs
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestEnvFromLabel(t *testing.T) {
|
||||
ts := "- foo\n- bar"
|
||||
tc, _ := EnvFromFrom(ts)
|
||||
if len(tc) != 2 {
|
||||
t.Errorf("Expected EnvFrom to have 2 items, got %d", len(tc))
|
||||
}
|
||||
if tc[0] != "foo" {
|
||||
t.Errorf("Expected EnvFrom to contain 'foo', got %s", tc[0])
|
||||
}
|
||||
if tc[1] != "bar" {
|
||||
t.Errorf("Expected EnvFrom to contain 'bar', got %s", tc[1])
|
||||
}
|
||||
}
|
17
generator/labels/labelstructs/exchangeVolume_test.go
Normal file
17
generator/labels/labelstructs/exchangeVolume_test.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package labelstructs
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestExchangeVolumeLabel(t *testing.T) {
|
||||
ts := "- name: exchange-volume\n mountPath: /exchange\n readOnly: true"
|
||||
tc, _ := NewExchangeVolumes(ts)
|
||||
if len(tc) != 1 {
|
||||
t.Errorf("Expected ExchangeVolumeLabel to have 1 item, got %d", len(tc))
|
||||
}
|
||||
if tc[0].Name != "exchange-volume" {
|
||||
t.Errorf("Expected ExchangeVolumeLabel to contain 'exchange-volume', got %s", tc[0].Name)
|
||||
}
|
||||
if tc[0].MountPath != "/exchange" {
|
||||
t.Errorf("Expected MountPath to be '/exchange', got %s", tc[0].MountPath)
|
||||
}
|
||||
}
|
@@ -14,10 +14,10 @@ type TLS struct {
|
||||
type Ingress struct {
|
||||
Port *int32 `yaml:"port,omitempty" json:"port,omitempty"`
|
||||
Annotations map[string]string `yaml:"annotations,omitempty" jsonschema:"nullable" json:"annotations,omitempty"`
|
||||
Hostname string `yaml:"hostname" json:"hostname,omitempty"`
|
||||
Hostname string `yaml:"hostname,omitempty" json:"hostname,omitempty"`
|
||||
Path *string `yaml:"path,omitempty" json:"path,omitempty"`
|
||||
Class *string `yaml:"class,omitempty" json:"class,omitempty" jsonschema:"default:-"`
|
||||
Enabled bool `yaml:"enabled" json:"enabled,omitempty"`
|
||||
Enabled bool `yaml:"enabled,omitempty" json:"enabled,omitempty"`
|
||||
TLS *TLS `yaml:"tls,omitempty" json:"tls,omitempty"`
|
||||
}
|
||||
|
||||
|
31
generator/labels/labelstructs/ingress_test.go
Normal file
31
generator/labels/labelstructs/ingress_test.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package labelstructs
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestIngressLabel(t *testing.T) {
|
||||
ts := "\nhostname: example.com\npath: /\nenabled: true\nport: 8888"
|
||||
tc, err := IngressFrom(ts)
|
||||
if err != nil {
|
||||
t.Errorf("Error parsing IngressLabel: %v", err)
|
||||
}
|
||||
if tc.Hostname != "example.com" {
|
||||
t.Errorf("Expected IngressLabel to contain 'example.com', got %s", tc.Hostname)
|
||||
}
|
||||
if tc.Path == nil || *tc.Path != "/" {
|
||||
t.Errorf("Expected IngressLabel to contain '/', got %v", tc.Path)
|
||||
}
|
||||
if tc.Enabled != true {
|
||||
t.Errorf("Expected IngressLabel to be enabled, got %v", tc.Enabled)
|
||||
}
|
||||
if tc.Port == nil || *tc.Port != 8888 {
|
||||
t.Errorf("Expected IngressLabel to have port 8888, got %d", tc.Port)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIngressLabelNoPort(t *testing.T) {
|
||||
ts := "\nhostname: example.com\npath: /\nenabled: true"
|
||||
_, err := IngressFrom(ts)
|
||||
if err == nil {
|
||||
t.Errorf("Expected error when parsing IngressLabel without port, got nil")
|
||||
}
|
||||
}
|
11
generator/labels/labelstructs/mapenv_test.go
Normal file
11
generator/labels/labelstructs/mapenv_test.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package labelstructs
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestConfigMapLabel(t *testing.T) {
|
||||
ts := "foo: bar"
|
||||
tc, _ := MapEnvFrom(ts)
|
||||
if len(tc) != 1 {
|
||||
t.Errorf("Expected ConfigMapFile to have 1 item, got %d", len(tc))
|
||||
}
|
||||
}
|
23
generator/labels/labelstructs/ports_test.go
Normal file
23
generator/labels/labelstructs/ports_test.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package labelstructs
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestPortsFromLabel(t *testing.T) {
|
||||
data := "- 8080\n- 9090\n"
|
||||
expected := Ports{8080, 9090}
|
||||
|
||||
ports, err := PortsFrom(data)
|
||||
if err != nil {
|
||||
t.Fatalf("expected no error, got %v", err)
|
||||
}
|
||||
|
||||
if len(ports) != len(expected) {
|
||||
t.Fatalf("expected length %d, got %d", len(expected), len(ports))
|
||||
}
|
||||
|
||||
for i, port := range ports {
|
||||
if port != expected[i] {
|
||||
t.Errorf("expected port %d at index %d, got %d", expected[i], i, port)
|
||||
}
|
||||
}
|
||||
}
|
16
generator/labels/labelstructs/probes_test.go
Normal file
16
generator/labels/labelstructs/probes_test.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package labelstructs
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestProbesLabel(t *testing.T) {
|
||||
readiness := "readinessProbe:\n httpGet:\n path: /healthz\n port: 8080\n initialDelaySeconds: 5\n periodSeconds: 10"
|
||||
tc, err := ProbeFrom(readiness)
|
||||
if err != nil {
|
||||
t.Errorf("Error parsing ProbesLabel: %v %v", err, tc)
|
||||
}
|
||||
liveness := "livenessProbe:\n httpGet:\n path: /healthz\n port: 8080\n initialDelaySeconds: 5\n periodSeconds: 10"
|
||||
tc2, err := ProbeFrom(liveness)
|
||||
if err != nil {
|
||||
t.Errorf("Error parsing ProbesLabel: %v %v", err, tc2)
|
||||
}
|
||||
}
|
17
generator/labels/labelstructs/secrets_test.go
Normal file
17
generator/labels/labelstructs/secrets_test.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package labelstructs
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestSecretLabel(t *testing.T) {
|
||||
data := "- foo\n- bar"
|
||||
tc, err := SecretsFrom(data)
|
||||
if err != nil {
|
||||
t.Errorf("Error parsing SecretLabel: %v %v", err, tc)
|
||||
}
|
||||
items := []string{"foo", "bar"}
|
||||
for i, item := range tc {
|
||||
if item != items[i] {
|
||||
t.Errorf("Expected SecretLabel to contain '%s', got '%s'", items[i], item)
|
||||
}
|
||||
}
|
||||
}
|
25
generator/labels/labelstructs/valueFrom_test.go
Normal file
25
generator/labels/labelstructs/valueFrom_test.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package labelstructs
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestValueFromLabel(t *testing.T) {
|
||||
data := "data: foo\ndata2: bar"
|
||||
tc, err := GetValueFrom(data)
|
||||
if err != nil {
|
||||
t.Fatalf("expected no error, got %v", err)
|
||||
}
|
||||
if tc == nil {
|
||||
t.Fatalf("expected non-nil map, got nil")
|
||||
}
|
||||
if len(*tc) != 2 {
|
||||
t.Errorf("expected 2 items, got %d", len(*tc))
|
||||
}
|
||||
if (*tc)["data"] != "foo" {
|
||||
t.Errorf("expected 'data' to be 'foo', got %s", (*tc)["data"])
|
||||
}
|
||||
if (*tc)["data2"] != "bar" {
|
||||
t.Errorf("expected 'data2' to be 'bar', got %s", (*tc)["data2"])
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user