...

Source file src/edge-infra.dev/pkg/f8n/warehouse/cluster/providers_test.go

Documentation: edge-infra.dev/pkg/f8n/warehouse/cluster

     1  package cluster
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	wh "edge-infra.dev/pkg/f8n/warehouse"
     9  )
    10  
    11  func TestClusterProviders_OCIAnnotations(t *testing.T) {
    12  	tcs := map[string]struct {
    13  		p      Providers
    14  		result string
    15  	}{
    16  		"more than one": {Providers{"gke", "generic"}, "generic,gke"},
    17  		"one":           {Providers{"gke"}, "gke"},
    18  	}
    19  
    20  	for name, tc := range tcs {
    21  		t.Run(name, func(t *testing.T) {
    22  			r := tc.p.OCIAnnotations()[wh.AnnotationClusterProviders]
    23  			if r != tc.result {
    24  				t.Errorf("expected %s, got %s", tc.result, r)
    25  			}
    26  		})
    27  	}
    28  }
    29  
    30  func TestClusterProviders_Set(t *testing.T) {
    31  	tcs := map[string]struct {
    32  		value  string
    33  		result string
    34  	}{
    35  		"one":            {"gke", "gke"},
    36  		"two":            {"gke,generic", "generic,gke"},
    37  		"trailing comma": {"gke,generic,", "generic,gke"},
    38  		"leading comma":  {",gke,generic", "generic,gke"},
    39  		"blank":          {"", ""},
    40  		"comma":          {",", ""},
    41  	}
    42  
    43  	for name, tc := range tcs {
    44  		t.Run(name, func(t *testing.T) {
    45  			var p Providers
    46  			_ = p.Set(tc.value)
    47  
    48  			if p.String() != tc.result {
    49  				t.Errorf("expected %s, got %s", tc.result, p.String())
    50  			}
    51  		})
    52  	}
    53  
    54  	t.Run("accumulates", func(t *testing.T) {
    55  		var p Providers
    56  		_ = p.Set("gke,generic")
    57  		_ = p.Set("sds")
    58  
    59  		expected := "generic,gke,sds"
    60  
    61  		if p.String() != expected {
    62  			t.Errorf("expected %s, got %s", expected, p.String())
    63  		}
    64  	})
    65  }
    66  
    67  func TestClusterProvider_Set(t *testing.T) {
    68  	var p Provider
    69  	_ = p.Set("gke")
    70  	if p.String() != "gke" {
    71  		t.Errorf("expected gke, got %s", p.String())
    72  	}
    73  }
    74  
    75  func TestIsValid(t *testing.T) {
    76  	var p Providers
    77  	err := p.IsValid("")
    78  	assert.ErrorIs(t, err, ErrNoProviders)
    79  
    80  	p = BuiltInProviders()
    81  	err = p.IsValid("invalid")
    82  	assert.ErrorContains(t, err, "invalid cluster provider")
    83  
    84  	err = p.IsValid("")
    85  	assert.NoError(t, err)
    86  }
    87  

View as plain text