package kubernetes import ( "fmt" "testing" "github.com/coredns/coredns/plugin/kubernetes/object" api "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/tools/cache" ) func TestDefaultProcessor(t *testing.T) { pbuild := object.DefaultProcessor(object.ToService, nil) reh := cache.ResourceEventHandlerFuncs{} idx := cache.NewIndexer(cache.DeletionHandlingMetaNamespaceKeyFunc, cache.Indexers{}) processor := pbuild(idx, reh) testProcessor(t, processor, idx) } func testProcessor(t *testing.T, processor cache.ProcessFunc, idx cache.Indexer) { obj := &api.Service{ ObjectMeta: metav1.ObjectMeta{Name: "service1", Namespace: "test1"}, Spec: api.ServiceSpec{ ClusterIP: "1.2.3.4", ClusterIPs: []string{"1.2.3.4"}, Ports: []api.ServicePort{{Port: 80}}, }, } obj2 := &api.Service{ ObjectMeta: metav1.ObjectMeta{Name: "service2", Namespace: "test1"}, Spec: api.ServiceSpec{ ClusterIP: "5.6.7.8", ClusterIPs: []string{"5.6.7.8"}, Ports: []api.ServicePort{{Port: 80}}, }, } // Add the objects err := processor(cache.Deltas{ {Type: cache.Added, Object: obj.DeepCopy()}, {Type: cache.Added, Object: obj2.DeepCopy()}, }) if err != nil { t.Fatalf("add failed: %v", err) } got, exists, err := idx.Get(obj) if err != nil { t.Fatalf("get added object failed: %v", err) } if !exists { t.Fatal("added object not found in index") } svc, ok := got.(*object.Service) if !ok { t.Fatal("object in index was incorrect type") } if fmt.Sprintf("%v", svc.ClusterIPs) != fmt.Sprintf("%v", obj.Spec.ClusterIPs) { t.Fatalf("expected '%v', got '%v'", obj.Spec.ClusterIPs, svc.ClusterIPs) } // Update an object obj.Spec.ClusterIP = "1.2.3.5" err = processor(cache.Deltas{{ Type: cache.Updated, Object: obj.DeepCopy(), }}) if err != nil { t.Fatalf("update failed: %v", err) } got, exists, err = idx.Get(obj) if err != nil { t.Fatalf("get updated object failed: %v", err) } if !exists { t.Fatal("updated object not found in index") } svc, ok = got.(*object.Service) if !ok { t.Fatal("object in index was incorrect type") } if fmt.Sprintf("%v", svc.ClusterIPs) != fmt.Sprintf("%v", obj.Spec.ClusterIPs) { t.Fatalf("expected '%v', got '%v'", obj.Spec.ClusterIPs, svc.ClusterIPs) } // Delete an object err = processor(cache.Deltas{{ Type: cache.Deleted, Object: obj2.DeepCopy(), }}) if err != nil { t.Fatalf("delete test failed: %v", err) } _, exists, err = idx.Get(obj2) if err != nil { t.Fatalf("get deleted object failed: %v", err) } if exists { t.Fatal("deleted object found in index") } // Delete an object via tombstone key, _ := cache.MetaNamespaceKeyFunc(obj) tombstone := cache.DeletedFinalStateUnknown{Key: key, Obj: svc} err = processor(cache.Deltas{{ Type: cache.Deleted, Object: tombstone, }}) if err != nil { t.Fatalf("tombstone delete test failed: %v", err) } _, exists, err = idx.Get(svc) if err != nil { t.Fatalf("get tombstone deleted object failed: %v", err) } if exists { t.Fatal("tombstone deleted object found in index") } } emitter-async-iter'>derrick/fix/event-emitter-async-iter Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-10-21Treat invalid buffer value as utf8 stringGravatar Jarred Sumner 1-2/+3
2022-10-21Add test for `fs.createReadStream`Gravatar Jarred Sumner 1-0/+43
2022-10-21Implement `fs.createReadStream`, begin `fs.createWriteStream`Gravatar Jarred Sumner 1-3/+621
2022-10-21Make Node Streams work better in BunGravatar Jarred Sumner 1-140/+214
2022-10-21Fix error handling logic in read()Gravatar Jarred Sumner 1-51/+79
2022-10-21Fix bugs in mask boolean valuesGravatar Jarred Sumner 2-15/+21
2022-10-21Emit errorsGravatar Jarred Sumner 2-2/+37
2022-10-21Add test for ResolveError.position being inspectableGravatar Jarred Sumner 2-0/+12
2022-10-21Fix segfault when logging position object from failed nested importGravatar Jarred Sumner 1-114/+34
2022-10-21Implement `setMaxListeners` and `getMaxListeners`Gravatar Jarred Sumner 1-1/+46
2022-10-21Fix `import Foo, {bar}` when from hardcoded builtin modules in runtimeGravatar Jarred Sumner 2-19/+34
2022-10-21Fix test failureGravatar Jarred Sumner 1-2/+3
2022-10-21Reload node:fs in developmentGravatar Jarred Sumner 1-0/+9
2022-10-21chore: remove outdated `var` usages (#1364)Gravatar Carter Snook 1-34/+34
2022-10-21Fix "/" in exampleGravatar Jarred Sumner 1-3/+10
2022-10-21Fix infinite loopGravatar Jarred Sumner 1-3/+13
2022-10-21micro-optimizeGravatar Jarred Sumner 1-7/+14
2022-10-20Update install script to use secure flagsGravatar Ashcon Partovi 2-5/+5
2022-10-20Add installation method for HomebrewGravatar Ashcon Partovi 1-0/+7
2022-10-20Fix crash in `highWaterMark`Gravatar Jarred Sumner 1-143/+144
2022-10-20Fix Bun.serve error handler error param (#1359)Gravatar zhiyuan 7-4/+37
2022-10-19Fix calling `ws.publish` inside `close` when other clients are connectedGravatar Jarred Sumner 3-28/+111
2022-10-19Cache dir loader: Prefer `$BUN_INSTALL` and `$XDG_CACHE_HOME` to `$HOME`. (#1...Gravatar Lucas Garron 1-5/+5
2022-10-19Improve issue templates (#1353)Gravatar Ashcon Partovi 8-89/+136