72 lines
1.3 KiB
Go
72 lines
1.3 KiB
Go
package view
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/derailed/k9s/internal/client"
|
|
"github.com/derailed/k9s/internal/config"
|
|
"github.com/derailed/k9s/internal/dao"
|
|
"github.com/derailed/k9s/internal/view/cmd"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_viewMetaFor(t *testing.T) {
|
|
uu := map[string]struct {
|
|
cmd string
|
|
gvr *client.GVR
|
|
err error
|
|
}{
|
|
"empty": {
|
|
cmd: "",
|
|
gvr: client.PodGVR,
|
|
err: errors.New("`` command not found"),
|
|
},
|
|
|
|
"toast-cmd": {
|
|
cmd: "v1/pd",
|
|
gvr: client.PodGVR,
|
|
err: errors.New("`v1/pd` command not found"),
|
|
},
|
|
|
|
"gvr-cmd": {
|
|
cmd: "v1/pods",
|
|
gvr: client.PodGVR,
|
|
err: errors.New("blah"),
|
|
},
|
|
|
|
"alias-cmd": {
|
|
cmd: "po",
|
|
gvr: client.PodGVR,
|
|
err: errors.New("blee"),
|
|
},
|
|
|
|
"full-cmd": {
|
|
cmd: "pdl",
|
|
gvr: client.PodGVR,
|
|
err: errors.New("blee"),
|
|
},
|
|
}
|
|
|
|
c := &Command{
|
|
alias: &dao.Alias{
|
|
Aliases: config.NewAliases(),
|
|
},
|
|
}
|
|
c.alias.Define(client.PodGVR, "po", "pod", "pods", client.PodGVR.String())
|
|
c.alias.Define(client.NewGVR("pod default"), "pd")
|
|
c.alias.Define(client.NewGVR("pod default app=blee @fred"), "pdl")
|
|
|
|
for k, u := range uu {
|
|
t.Run(k, func(t *testing.T) {
|
|
p := cmd.NewInterpreter(u.cmd)
|
|
gvr, _, err := c.viewMetaFor(p)
|
|
if err != nil {
|
|
assert.Equal(t, u.err.Error(), err.Error())
|
|
} else {
|
|
assert.Equal(t, u.gvr, gvr)
|
|
}
|
|
})
|
|
}
|
|
}
|