Ctrl K
ComunidadGuías…

pkg/configrefs/contour_reference_contracts_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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)
	}
}