Files
kubevela/pkg/commands/portforward_test.go

63 lines
1.7 KiB
Go

package commands
import (
"context"
"fmt"
"os"
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
k8sfake "k8s.io/client-go/kubernetes/fake"
"k8s.io/kubectl/pkg/cmd/portforward"
cmdtesting "k8s.io/kubectl/pkg/cmd/testing"
"github.com/oam-dev/kubevela/apis/types"
cmdutil "github.com/oam-dev/kubevela/pkg/commands/util"
"github.com/oam-dev/kubevela/pkg/oam"
)
func TestPortForwardCommand(t *testing.T) {
fakePod := corev1.Pod{
ObjectMeta: v1.ObjectMeta{
Name: "fakePod",
Namespace: "default",
ResourceVersion: "10",
Labels: map[string]string{
oam.LabelAppComponent: "fakeComp",
}},
}
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 := NewPortForwardCommand(fakeC, io)
cmd.PersistentFlags().StringP("env", "e", "", "")
fakeClientSet := k8sfake.NewSimpleClientset(&corev1.PodList{
Items: []corev1.Pod{fakePod},
})
o := &VelaPortForwardOptions{
ioStreams: io,
kcPortForwardOptions: &portforward.PortForwardOptions{},
f: tf,
ClientSet: fakeClientSet,
VelaC: fakeC,
}
err := o.Init(context.Background(), cmd, []string{"fakeApp", "8081:8080"})
errString := fmt.Sprintf(`application "%s" not found`, "fakeApp")
assert.EqualError(t, err, errString)
}
func TestNewPortForwardCommandPersistentPreRunE(t *testing.T) {
io := cmdutil.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr}
fakeC := types.Args{}
cmd := NewPortForwardCommand(fakeC, io)
assert.Nil(t, cmd.PersistentPreRunE(new(cobra.Command), []string{}))
}