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  }