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  }