github.com/kubeshop/testkube@v1.17.23/pkg/event/loader_test.go (about) 1 package event 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 9 "github.com/kubeshop/testkube/pkg/event/kind/dummy" 10 ) 11 12 func TestLoader_UpdateListeners(t *testing.T) { 13 14 t.Run("reconcile updates listeners list based on registered reconcilers", func(t *testing.T) { 15 // given reconciler with two registered reconcilers that return two listeners each 16 reconciler := NewLoader() 17 reconciler.Register(&dummy.DummyLoader{IdPrefix: "dummy1"}) 18 reconciler.Register(&dummy.DummyLoader{IdPrefix: "dummy2"}) 19 20 // when 21 listeners := reconciler.Reconcile() 22 23 // then there should be 4 listeners 24 assert.Len(t, listeners, 4) 25 }) 26 27 t.Run("reconcile updates listeners list based on registered reconcilers thread safe", func(t *testing.T) { 28 // given reconciler with two registered reconcilers that return two listeners each 29 reconciler := NewLoader() 30 reconciler.Register(&dummy.DummyLoader{}) 31 reconciler.Register(&dummy.DummyLoader{}) 32 33 // when 34 listeners := reconciler.Reconcile() 35 36 // then there should be 4 listeners 37 assert.Len(t, listeners, 4) 38 }) 39 40 t.Run("failed loaders are omited", func(t *testing.T) { 41 // given reconciler with two registered reconcilers that return two listeners each 42 reconciler := NewLoader() 43 reconciler.Register(&dummy.DummyLoader{Err: fmt.Errorf("loader error")}) 44 reconciler.Register(&dummy.DummyLoader{}) 45 46 // when 47 listeners := reconciler.Reconcile() 48 49 // then there should be 2 listeners 50 assert.Len(t, listeners, 2) 51 }) 52 53 }