constellation/internal/kubernetes/kubectl/kubectl_test.go
Otto Bittner e7c7e35f51 cli: create backups for CRDs and their resources
These backups could be used in case an upgrade
misbehaves after helm declared it as successful.
The manual backups are required as helm-rollback
won't touch custom resources and changes to CRDs
delete resources of the old version.
2023-01-05 16:52:06 +01:00

47 lines
1.0 KiB
Go

/*
Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
package kubectl
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestParseCRDs(t *testing.T) {
testCases := map[string]struct {
data string
wantErr bool
}{
"success": {
data: "apiVersion: apiextensions.k8s.io/v1\nkind: CustomResourceDefinition\nmetadata:\n name: nodeimages.update.edgeless.systems\nspec:\n group: update.edgeless.systems\n names:\n kind: NodeImage\n",
wantErr: false,
},
"wrong kind": {
data: "apiVersion: v1\nkind: Secret\ntype: Opaque\nmetadata:\n name: supersecret\n namespace: testNamespace\ndata:\n data: YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=\n",
wantErr: true,
},
"decoding error": {
data: "asdf",
wantErr: true,
},
}
for name, tc := range testCases {
t.Run(name, func(t *testing.T) {
assert := assert.New(t)
_, err := parseCRD([]byte(tc.data))
if tc.wantErr {
assert.Error(err)
return
}
assert.NoError(err)
})
}
}