Files
kubevela/pkg/commands/exec_test.go
roy wang be6122edc3 vela exec
Signed-off-by: roy wang <seiwy2010@gmail.com>

add unit test

Signed-off-by: roy wang <seiwy2010@gmail.com>
2020-10-25 14:56:37 +09:00

61 lines
1.5 KiB
Go

package commands
import (
"context"
"os"
"testing"
"github.com/crossplane/oam-kubernetes-runtime/pkg/oam"
"github.com/oam-dev/kubevela/api/types"
"github.com/oam-dev/kubevela/pkg/appfile"
"github.com/oam-dev/kubevela/pkg/application"
cmdutil "github.com/oam-dev/kubevela/pkg/commands/util"
"github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes/fake"
"k8s.io/kubectl/pkg/cmd/exec"
cmdtesting "k8s.io/kubectl/pkg/cmd/testing"
)
func TestExecCommand(t *testing.T) {
tf := cmdtesting.NewTestFactory()
defer tf.Cleanup()
io := cmdutil.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr}
fakeC := types.Args{
Config: tf.ClientConfigVal,
}
cmd := NewExecCommand(fakeC, io)
cmd.PersistentFlags().StringP("env", "e", "", "")
o := &VelaExecOptions{
kcExecOptions: &exec.ExecOptions{},
f: tf,
ClientSet: fake.NewSimpleClientset(&corev1.PodList{
Items: []corev1.Pod{
{
ObjectMeta: v1.ObjectMeta{
Name: "fakePod",
Namespace: "default",
Labels: map[string]string{
oam.LabelAppName: "fakeApp",
oam.LabelAppComponent: "fakeComp",
}},
},
},
}),
}
err := o.Init(context.Background(), cmd, []string{"fakeApp"})
assert.NoError(t, err)
fakeApp := &application.Application{
AppFile: &appfile.AppFile{
Name: "fakeApp",
Services: map[string]appfile.Service{
"fakeComp": map[string]interface{}{},
},
},
}
o.App = fakeApp
err = o.Complete()
assert.NoError(t, err)
}