71 lines
1.7 KiB
Go
71 lines
1.7 KiB
Go
// SPDX-License-Identifier: Apache-2.0
|
|
// Copyright Authors of K9s
|
|
|
|
package config_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/derailed/k9s/internal/config"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
var pluginYmlTestData = config.Plugin{
|
|
Scopes: []string{"po", "dp"},
|
|
Args: []string{"-n", "$NAMESPACE", "-boolean"},
|
|
ShortCut: "shift-s",
|
|
Description: "blee",
|
|
Command: "duh",
|
|
Confirm: true,
|
|
Background: false,
|
|
}
|
|
|
|
var test1YmlTestData = config.Plugin{
|
|
Scopes: []string{"po", "dp"},
|
|
Args: []string{"-n", "$NAMESPACE", "-boolean"},
|
|
ShortCut: "shift-s",
|
|
Description: "blee",
|
|
Command: "duh",
|
|
Confirm: true,
|
|
Background: false,
|
|
}
|
|
|
|
var test2YmlTestData = config.Plugin{
|
|
Scopes: []string{"svc", "ing"},
|
|
Args: []string{"-n", "$NAMESPACE", "-oyaml"},
|
|
ShortCut: "shift-r",
|
|
Description: "bla",
|
|
Command: "duha",
|
|
Confirm: false,
|
|
Background: true,
|
|
}
|
|
|
|
func TestSinglePluginFileLoad(t *testing.T) {
|
|
p := config.NewPlugins()
|
|
assert.Nil(t, p.LoadPlugins("testdata/plugin.yml", []string{"/random/dir/not/exist"}))
|
|
|
|
assert.Equal(t, 1, len(p.Plugin))
|
|
k, ok := p.Plugin["blah"]
|
|
assert.True(t, ok)
|
|
|
|
assert.ObjectsAreEqual(pluginYmlTestData, k)
|
|
}
|
|
|
|
func TestMultiplePluginFilesLoad(t *testing.T) {
|
|
p := config.NewPlugins()
|
|
assert.Nil(t, p.LoadPlugins("testdata/plugin.yml", []string{"testdata/plugins"}))
|
|
|
|
testPlugins := map[string]config.Plugin{
|
|
"blah": pluginYmlTestData,
|
|
"test1": test1YmlTestData,
|
|
"test2": test2YmlTestData,
|
|
}
|
|
|
|
assert.Equal(t, len(testPlugins), len(p.Plugin))
|
|
for name, expectedPlugin := range testPlugins {
|
|
k, ok := p.Plugin[name]
|
|
assert.True(t, ok)
|
|
assert.ObjectsAreEqual(expectedPlugin, k)
|
|
}
|
|
}
|