diff --git a/tools/clientcmd/loader_test.go b/tools/clientcmd/loader_test.go index 461d970b..f38a92b7 100644 --- a/tools/clientcmd/loader_test.go +++ b/tools/clientcmd/loader_test.go @@ -17,6 +17,7 @@ limitations under the License. package clientcmd import ( + "bytes" "fmt" "io/ioutil" "os" @@ -29,6 +30,7 @@ import ( "sigs.k8s.io/yaml" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" clientcmdlatest "k8s.io/client-go/tools/clientcmd/api/latest" ) @@ -175,6 +177,56 @@ func TestConflictingCurrentContext(t *testing.T) { } } +func TestEncodeYAML(t *testing.T) { + config := clientcmdapi.Config{ + CurrentContext: "any-context-value", + Contexts: map[string]*clientcmdapi.Context{ + "433e40": { + Cluster: "433e40", + }, + }, + Clusters: map[string]*clientcmdapi.Cluster{ + "0": { + Server: "https://localhost:1234", + }, + "1": { + Server: "https://localhost:1234", + }, + "433e40": { + Server: "https://localhost:1234", + }, + }, + } + data, err := Write(config) + if err != nil { + t.Fatal(err) + } + expected := []byte(`apiVersion: v1 +clusters: +- cluster: + server: https://localhost:1234 + name: "0" +- cluster: + server: https://localhost:1234 + name: "1" +- cluster: + server: https://localhost:1234 + name: "433e40" +contexts: +- context: + cluster: "433e40" + user: "" + name: "433e40" +current-context: any-context-value +kind: Config +preferences: {} +users: null +`) + if !bytes.Equal(expected, data) { + t.Error(diff.ObjectReflectDiff(string(expected), string(data))) + } +} + func TestLoadingEmptyMaps(t *testing.T) { configFile, _ := ioutil.TempFile("", "") defer os.Remove(configFile.Name())