Ctrl K
ComunidadGuías…

pkg/k8score/dynamic_cache_delete_test.go

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

Archivo original ↗Preguntar a KiBot
package k8score

import (
	"testing"

	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
	"k8s.io/apimachinery/pkg/runtime/schema"
	"k8s.io/client-go/tools/cache"
)

func TestDynamicDeleteTombstonePassesUnwrappedObjectToCallbacks(t *testing.T) {
	gvr := schema.GroupVersionResource{
		Group: "example.io", Version: "v1", Resource: "widgets",
	}
	deleted := &unstructured.Unstructured{Object: map[string]any{
		"apiVersion": "example.io/v1",
		"kind":       "Widget",
		"metadata": map[string]any{
			"namespace": "shop",
			"name":      "checkout",
			"uid":       "widget-uid",
		},
	}}

	var callbackObject any
	dynamicCache := &DynamicResourceCache{config: DynamicCacheConfig{
		OnChange: func(_ ResourceChange, obj, _ any) {
			callbackObject = obj
		},
	}}
	dynamicCache.enqueueDynamicChange(
		"Widget",
		gvr,
		cache.DeletedFinalStateUnknown{Key: "shop/checkout", Obj: deleted},
		nil,
		OpDelete,
	)

	if callbackObject != deleted {
		t.Fatalf("OnChange object = %T %p, want unwrapped object %p", callbackObject, callbackObject, deleted)
	}
}