github.com/cilium/cilium@v1.16.2/pkg/client/client_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package client 5 6 import ( 7 "context" 8 "errors" 9 "fmt" 10 "testing" 11 "time" 12 13 "github.com/stretchr/testify/require" 14 15 "github.com/cilium/cilium/api/v1/models" 16 ) 17 18 func TestHint(t *testing.T) { 19 var err error 20 require.Nil(t, Hint(err)) 21 22 err = errors.New("foo bar") 23 require.ErrorContains(t, Hint(err), "foo bar") 24 25 err = fmt.Errorf("ayy lmao") 26 require.ErrorContains(t, Hint(err), "ayy lmao") 27 28 err = context.DeadlineExceeded 29 require.ErrorContains(t, Hint(err), "Cilium API client timeout exceeded") 30 31 ctx, cancel := context.WithTimeout(context.Background(), 1*time.Millisecond) 32 defer cancel() 33 34 <-ctx.Done() 35 err = ctx.Err() 36 37 require.ErrorContains(t, Hint(err), "Cilium API client timeout exceeded") 38 } 39 40 func TestClusterReadiness(t *testing.T) { 41 require.Equal(t, "ready", clusterReadiness(&models.RemoteCluster{Ready: true})) 42 require.Equal(t, "not-ready", clusterReadiness(&models.RemoteCluster{Ready: false})) 43 } 44 45 func TestNumReadyClusters(t *testing.T) { 46 require.Equal(t, 0, NumReadyClusters(nil)) 47 require.Equal(t, 2, NumReadyClusters([]*models.RemoteCluster{{Ready: true}, {Ready: true}, {Ready: false}})) 48 }