Skip to content

Commit 4a4ff7f

Browse files
committed
Add some tests to override
Signed-off-by: Alberto Gutierrez <aljesusg@gmail.com>
1 parent 3362953 commit 4a4ff7f

File tree

3 files changed

+97
-2
lines changed

3 files changed

+97
-2
lines changed

pkg/config/config_default.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,24 @@ import (
66
"github.com/BurntSushi/toml"
77
)
88

9+
// DefaultOverridesProvider is used to retrieve the overrides.
10+
// It points to defaultOverrides by default, and can be replaced in tests.
11+
var DefaultOverridesProvider = defaultOverrides
12+
913
func Default() *StaticConfig {
1014
defaultConfig := StaticConfig{
1115
ListOutput: "table",
1216
Toolsets: []string{"core", "config", "helm"},
1317
}
14-
overrides := defaultOverrides()
18+
overrides := DefaultOverridesProvider()
1519
mergedConfig := mergeConfig(defaultConfig, overrides)
1620
return &mergedConfig
1721
}
1822

1923
// HasDefaultOverrides indicates whether the internal defaultOverrides function
2024
// provides any overrides or an empty StaticConfig.
2125
func HasDefaultOverrides() bool {
22-
overrides := defaultOverrides()
26+
overrides := DefaultOverridesProvider()
2327
var buf bytes.Buffer
2428
if err := toml.NewEncoder(&buf).Encode(overrides); err != nil {
2529
// If marshaling fails, assume no overrides
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package kiali
2+
3+
import (
4+
"testing"
5+
6+
"github.com/containers/kubernetes-mcp-server/pkg/config"
7+
"github.com/containers/kubernetes-mcp-server/pkg/toolsets"
8+
"github.com/stretchr/testify/assert"
9+
)
10+
11+
func TestKialiToolsetNameOverridesToOssm(t *testing.T) {
12+
// Swap the default overrides provider to simulate downstream override
13+
orig := config.DefaultOverridesProvider
14+
config.DefaultOverridesProvider = func() config.StaticConfig {
15+
return config.StaticConfig{
16+
ToolsetKialiName: "ossm",
17+
}
18+
}
19+
defer func() { config.DefaultOverridesProvider = orig }()
20+
21+
// Snapshot current registry to restore after test
22+
originalToolsets := toolsets.Toolsets()
23+
defer func() {
24+
toolsets.Clear()
25+
for _, ts := range originalToolsets {
26+
toolsets.Register(ts)
27+
}
28+
}()
29+
30+
// Ensure a clean registry and register a fresh instance of this toolset
31+
toolsets.Clear()
32+
toolsets.Register(&Toolset{})
33+
34+
names := toolsets.ToolsetNames()
35+
assert.Contains(t, names, "ossm", "expected toolset name to be overridden to 'ossm'")
36+
assert.NotContains(t, names, "kiali", "expected original toolset name 'kiali' to be replaced")
37+
}
38+
39+
func TestKialiToolsetNameDefaultsToKiali(t *testing.T) {
40+
// Force no overrides to be returned
41+
orig := config.DefaultOverridesProvider
42+
config.DefaultOverridesProvider = func() config.StaticConfig {
43+
return config.StaticConfig{}
44+
}
45+
defer func() { config.DefaultOverridesProvider = orig }()
46+
47+
// Snapshot current registry to restore after test
48+
originalToolsets := toolsets.Toolsets()
49+
defer func() {
50+
toolsets.Clear()
51+
for _, ts := range originalToolsets {
52+
toolsets.Register(ts)
53+
}
54+
}()
55+
56+
toolsets.Clear()
57+
toolsets.Register(&Toolset{})
58+
59+
names := toolsets.ToolsetNames()
60+
assert.Contains(t, names, "kiali", "expected default toolset name to be 'kiali' when no override provided")
61+
assert.NotContains(t, names, "ossm", "did not expect 'ossm' without override")
62+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package kiali
2+
3+
import (
4+
"context"
5+
"strings"
6+
"testing"
7+
8+
"github.com/containers/kubernetes-mcp-server/pkg/kubernetes"
9+
"github.com/stretchr/testify/assert"
10+
"github.com/stretchr/testify/require"
11+
)
12+
13+
type fakeOpenShiftTrue struct{}
14+
15+
func (fakeOpenShiftTrue) IsOpenShift(context.Context) bool { return true }
16+
17+
func TestKialiToolsUseOssmPrefixWhenOpenShift(t *testing.T) {
18+
var o kubernetes.Openshift = fakeOpenShiftTrue{}
19+
tools := (&Toolset{}).GetTools(o)
20+
21+
require.NotEmpty(t, tools, "expected kiali toolset to expose tools")
22+
for _, tool := range tools {
23+
name := tool.Tool.Name
24+
assert.Truef(t, strings.HasPrefix(name, "ossm_"), "expected tool name to start with 'ossm_', got %q", name)
25+
assert.Falsef(t, strings.HasPrefix(name, "kiali_"), "did not expect tool name to start with 'kiali_' when OpenShift, got %q", name)
26+
}
27+
}
28+
29+

0 commit comments

Comments
 (0)