pkg/configrefs/contour_reference_contracts_test.go
Rama main · réplica de lectura del repositorio original.
package configrefs
import (
"encoding/json"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"os"
"testing"
)
func TestContourSecretNamespaceContract(t *testing.T) {
raw, err := os.ReadFile("testdata/contour_secret_refs.json")
if err != nil {
t.Fatal(err)
}
var cases []struct {
Case string `json:"case"`
Raw string `json:"raw"`
DefaultNamespace string `json:"defaultNamespace"`
Valid bool `json:"valid"`
Namespace string `json:"namespace"`
Name string `json:"name"`
}
if err := json.Unmarshal(raw, &cases); err != nil {
t.Fatal(err)
}
for _, tc := range cases {
t.Run(tc.Case, func(t *testing.T) {
ref, valid := ContourSecretReference(tc.Raw, tc.DefaultNamespace)
if valid != tc.Valid || valid && (ref.Namespace != tc.Namespace || ref.Name != tc.Name) {
t.Fatalf("%s: %+v valid=%v", tc.Raw, ref, valid)
}
})
}
}
func TestContourUpstreamValidationNamespaces(t *testing.T) {
obj := &unstructured.Unstructured{Object: map[string]any{"metadata": map[string]any{"namespace": "app"}, "spec": map[string]any{"routes": []any{map[string]any{"services": []any{map[string]any{"validation": map[string]any{"caSecret": "tls/http"}}}}}, "tcpproxy": map[string]any{"services": []any{map[string]any{"validation": map[string]any{"caSecret": "tcp"}}}}, "virtualhost": map[string]any{"jwtProviders": []any{map[string]any{"remoteJWKS": map[string]any{"validation": map[string]any{"caSecret": "tls/jwks"}}}}}}}}
refs := ContourSecretReferences(obj)
if len(refs) != 3 || refs[0].Namespace != "tls" || refs[0].Name != "http" || refs[1].Namespace != "app" || refs[1].Name != "tcp" || refs[2].Namespace != "tls" || refs[2].Name != "jwks" {
t.Fatalf("refs=%+v", refs)
}
}