Files
kubevela/pkg/dsl/model/instance_test.go
Jianbo Sun 97f45ae859 code refactor (#935)
* code refactor

* update boilerplate.go.txt
2021-01-26 10:26:41 +08:00

127 lines
2.3 KiB
Go

package model
import (
"testing"
"cuelang.org/go/cue"
"github.com/stretchr/testify/assert"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema"
)
func TestInstance(t *testing.T) {
testCases := []struct {
src string
gvk schema.GroupVersionKind
}{{
src: `apiVersion: "apps/v1"
kind: "Deployment"
metadata: name: "test"
`,
gvk: schema.GroupVersionKind{
Group: "apps",
Version: "v1",
Kind: "Deployment",
}},
}
for _, v := range testCases {
var r cue.Runtime
inst, err := r.Compile("-", v.src)
if err != nil {
t.Error(err)
return
}
base, err := NewBase(inst.Value())
if err != nil {
t.Error(err)
return
}
baseObj, err := base.Unstructured()
if err != nil {
t.Error(err)
return
}
assert.Equal(t, v.gvk, baseObj.GetObjectKind().GroupVersionKind())
assert.Equal(t, true, base.IsBase())
other, err := NewOther(inst.Value())
if err != nil {
t.Error(err)
return
}
otherObj, err := other.Unstructured()
if err != nil {
t.Error(err)
return
}
assert.Equal(t, v.gvk, otherObj.GetObjectKind().GroupVersionKind())
assert.Equal(t, false, other.IsBase())
}
}
func TestIncompleteError(t *testing.T) {
base := `parameter: {
name: string
// +usage=Which image would you like to use for your service
// +short=i
image: string
// +usage=Which port do you want customer traffic sent to
// +short=p
port: *8080 | int
env: [...{
name: string
value: string
}]
cpu?: string
}
output: {
apiVersion: "apps/v1"
kind: "Deployment"
metadata: name: parameter.name
spec: {
selector:
matchLabels:
app: parameter.name
template: {
metadata:
labels:
app: parameter.name
spec: containers: [{
image: parameter.image
name: parameter.name
env: parameter.env
ports: [{
containerPort: parameter.port
protocol: "TCP"
name: "default"
}]
if parameter["cpu"] != _|_ {
resources: {
limits:
cpu: parameter.cpu
requests:
cpu: parameter.cpu
}
}
}]
}
}
}
`
var r cue.Runtime
inst, err := r.Compile("-", base)
assert.NoError(t, err)
newbase, err := NewBase(inst.Value())
assert.NoError(t, err)
data, err := newbase.Unstructured()
assert.Error(t, err)
var expnil *unstructured.Unstructured
assert.Equal(t, expnil, data)
}