fix namespace suggestion error on context switch (#2315)
parent
b360de3565
commit
c639b6a5cf
|
|
@ -151,11 +151,6 @@ func (a *App) initSignals() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) suggestCommand() model.SuggestionFunc {
|
func (a *App) suggestCommand() model.SuggestionFunc {
|
||||||
namespaceNames, err := a.namespaceNames()
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Msg("failed to list namespaces")
|
|
||||||
}
|
|
||||||
|
|
||||||
contextNames, err := a.contextNames()
|
contextNames, err := a.contextNames()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().Err(err).Msg("failed to list contexts")
|
log.Error().Err(err).Msg("failed to list contexts")
|
||||||
|
|
@ -176,6 +171,11 @@ func (a *App) suggestCommand() model.SuggestionFunc {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespaceNames, err := a.namespaceNames()
|
||||||
|
if err != nil {
|
||||||
|
log.Error().Err(err).Msg("failed to list namespaces")
|
||||||
|
}
|
||||||
|
|
||||||
entries = append(entries, suggestSubCommand(s, namespaceNames, contextNames)...)
|
entries = append(entries, suggestSubCommand(s, namespaceNames, contextNames)...)
|
||||||
if len(entries) == 0 {
|
if len(entries) == 0 {
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
// Copyright Authors of K9s
|
||||||
|
|
||||||
|
package view
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Test_suggestSubCommand(t *testing.T) {
|
||||||
|
namespaceNames := []string{"kube-system", "kube-public", "default", "nginx-ingress"}
|
||||||
|
contextNames := []string{"develop", "test", "pre", "prod"}
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
Command string
|
||||||
|
Suggestions []string
|
||||||
|
}{
|
||||||
|
{Command: "q", Suggestions: nil},
|
||||||
|
{Command: "xray dp", Suggestions: nil},
|
||||||
|
{Command: "help k", Suggestions: nil},
|
||||||
|
{Command: "ctx p", Suggestions: []string{"re", "rod"}},
|
||||||
|
{Command: "ctx p", Suggestions: []string{"re", "rod"}},
|
||||||
|
{Command: "ctx pr", Suggestions: []string{"e", "od"}},
|
||||||
|
{Command: "context d", Suggestions: []string{"evelop"}},
|
||||||
|
{Command: "contexts t", Suggestions: []string{"est"}},
|
||||||
|
{Command: "po ", Suggestions: nil},
|
||||||
|
{Command: "po x", Suggestions: nil},
|
||||||
|
{Command: "po k", Suggestions: []string{"ube-system", "ube-public"}},
|
||||||
|
{Command: "po kube-", Suggestions: []string{"system", "public"}},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
got := suggestSubCommand(tt.Command, namespaceNames, contextNames)
|
||||||
|
assert.Equal(t, tt.Suggestions, got)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,46 +1,19 @@
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
// Copyright Authors of K9s
|
// Copyright Authors of K9s
|
||||||
|
|
||||||
package view
|
package view_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/derailed/k9s/internal/config"
|
"github.com/derailed/k9s/internal/config"
|
||||||
|
"github.com/derailed/k9s/internal/view"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAppNew(t *testing.T) {
|
func TestAppNew(t *testing.T) {
|
||||||
a := NewApp(config.NewConfig(ks{}))
|
a := view.NewApp(config.NewConfig(ks{}))
|
||||||
_ = a.Init("blee", 10)
|
_ = a.Init("blee", 10)
|
||||||
|
|
||||||
assert.Equal(t, 11, len(a.GetActions()))
|
assert.Equal(t, 11, len(a.GetActions()))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_suggestSubCommand(t *testing.T) {
|
|
||||||
namespaceNames := []string{"kube-system", "kube-public", "default", "nginx-ingress"}
|
|
||||||
contextNames := []string{"develop", "test", "pre", "prod"}
|
|
||||||
|
|
||||||
tests := []struct {
|
|
||||||
Command string
|
|
||||||
Suggestions []string
|
|
||||||
}{
|
|
||||||
{Command: "q", Suggestions: nil},
|
|
||||||
{Command: "xray dp", Suggestions: nil},
|
|
||||||
{Command: "help k", Suggestions: nil},
|
|
||||||
{Command: "ctx p", Suggestions: []string{"re", "rod"}},
|
|
||||||
{Command: "ctx p", Suggestions: []string{"re", "rod"}},
|
|
||||||
{Command: "ctx pr", Suggestions: []string{"e", "od"}},
|
|
||||||
{Command: "context d", Suggestions: []string{"evelop"}},
|
|
||||||
{Command: "contexts t", Suggestions: []string{"est"}},
|
|
||||||
{Command: "po ", Suggestions: nil},
|
|
||||||
{Command: "po x", Suggestions: nil},
|
|
||||||
{Command: "po k", Suggestions: []string{"ube-system", "ube-public"}},
|
|
||||||
{Command: "po kube-", Suggestions: []string{"system", "public"}},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tt := range tests {
|
|
||||||
got := suggestSubCommand(tt.Command, namespaceNames, contextNames)
|
|
||||||
assert.Equal(t, tt.Suggestions, got)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue