Skip to content

Commit 9564e34

Browse files
committed
test(mcp): reuse test.DiscoveryClientHandler where possible
Signed-off-by: Marc Nuri <marc@marcnuri.com>
1 parent 71178e3 commit 9564e34

File tree

5 files changed

+16
-38
lines changed

5 files changed

+16
-38
lines changed

pkg/mcp/mcp_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ func (s *McpHeadersSuite) SetupTest() {
3636
w.WriteHeader(200)
3737
return
3838
}
39-
w.WriteHeader(404)
4039
}))
4140
}
4241

pkg/mcp/nodes_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ type NodesSuite struct {
1919
func (s *NodesSuite) SetupTest() {
2020
s.BaseMcpSuite.SetupTest()
2121
s.mockServer = test.NewMockServer()
22+
s.mockServer.Handle(&test.DiscoveryClientHandler{})
2223
s.Cfg.KubeConfig = s.mockServer.KubeconfigFile(s.T())
2324
}
2425

pkg/mcp/nodes_top_test.go

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,17 @@ import (
1212

1313
type NodesTopSuite struct {
1414
BaseMcpSuite
15-
mockServer *test.MockServer
15+
mockServer *test.MockServer
16+
discoveryHandler *test.DiscoveryClientHandler
1617
}
1718

1819
func (s *NodesTopSuite) SetupTest() {
1920
s.BaseMcpSuite.SetupTest()
2021
s.mockServer = test.NewMockServer()
2122
s.Cfg.KubeConfig = s.mockServer.KubeconfigFile(s.T())
22-
s.mockServer.Handle(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
23-
w.Header().Set("Content-Type", "application/json")
24-
// Request Performed by DiscoveryClient to Kube API (Get API Groups legacy -core-)
25-
if req.URL.Path == "/api" {
26-
_, _ = w.Write([]byte(`{"kind":"APIVersions","versions":[],"serverAddressByClientCIDRs":[{"clientCIDR":"0.0.0.0/0"}]}`))
27-
return
28-
}
29-
}))
23+
24+
s.discoveryHandler = &test.DiscoveryClientHandler{}
25+
s.mockServer.Handle(s.discoveryHandler)
3026
}
3127

3228
func (s *NodesTopSuite) TearDownTest() {
@@ -37,12 +33,9 @@ func (s *NodesTopSuite) TearDownTest() {
3733
}
3834

3935
func (s *NodesTopSuite) WithMetricsServer() {
36+
s.discoveryHandler.Groups = []string{`{"name":"metrics.k8s.io","versions":[{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}],"preferredVersion":{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}}`}
4037
s.mockServer.Handle(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
41-
// Request Performed by DiscoveryClient to Kube API (Get API Groups)
42-
if req.URL.Path == "/apis" {
43-
_, _ = w.Write([]byte(`{"kind":"APIGroupList","apiVersion":"v1","groups":[{"name":"metrics.k8s.io","versions":[{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}],"preferredVersion":{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}}]}`))
44-
return
45-
}
38+
w.Header().Set("Content-Type", "application/json")
4639
// Request Performed by DiscoveryClient to Kube API (Get API Resources)
4740
if req.URL.Path == "/apis/metrics.k8s.io/v1beta1" {
4841
_, _ = w.Write([]byte(`{"kind":"APIResourceList","apiVersion":"v1","groupVersion":"metrics.k8s.io/v1beta1","resources":[{"name":"nodes","singularName":"","namespaced":false,"kind":"NodeMetrics","verbs":["get","list"]}]}`))

pkg/mcp/pods_exec_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type PodsExecSuite struct {
2424
func (s *PodsExecSuite) SetupTest() {
2525
s.BaseMcpSuite.SetupTest()
2626
s.mockServer = test.NewMockServer()
27+
s.mockServer.Handle(&test.DiscoveryClientHandler{})
2728
s.Cfg.KubeConfig = s.mockServer.KubeconfigFile(s.T())
2829
}
2930

pkg/mcp/pods_top_test.go

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,17 @@ import (
1313

1414
type PodsTopSuite struct {
1515
BaseMcpSuite
16-
mockServer *test.MockServer
16+
mockServer *test.MockServer
17+
discoveryHandler *test.DiscoveryClientHandler
1718
}
1819

1920
func (s *PodsTopSuite) SetupTest() {
2021
s.BaseMcpSuite.SetupTest()
2122
s.mockServer = test.NewMockServer()
2223
s.Cfg.KubeConfig = s.mockServer.KubeconfigFile(s.T())
24+
25+
s.discoveryHandler = &test.DiscoveryClientHandler{}
26+
s.mockServer.Handle(s.discoveryHandler)
2327
}
2428

2529
func (s *PodsTopSuite) TearDownTest() {
@@ -30,7 +34,6 @@ func (s *PodsTopSuite) TearDownTest() {
3034
}
3135

3236
func (s *PodsTopSuite) TestPodsTopMetricsUnavailable() {
33-
s.mockServer.Handle(&test.DiscoveryClientHandler{})
3437
s.InitMcpClient()
3538

3639
s.Run("pods_top with metrics API not available", func() {
@@ -44,18 +47,9 @@ func (s *PodsTopSuite) TestPodsTopMetricsUnavailable() {
4447
}
4548

4649
func (s *PodsTopSuite) TestPodsTopMetricsAvailable() {
50+
s.discoveryHandler.Groups = []string{`{"name":"metrics.k8s.io","versions":[{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}],"preferredVersion":{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}}`}
4751
s.mockServer.Handle(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
4852
w.Header().Set("Content-Type", "application/json")
49-
// Request Performed by DiscoveryClient to Kube API (Get API Groups legacy -core-)
50-
if req.URL.Path == "/api" {
51-
_, _ = w.Write([]byte(`{"kind":"APIVersions","versions":["metrics.k8s.io/v1beta1"],"serverAddressByClientCIDRs":[{"clientCIDR":"0.0.0.0/0"}]}`))
52-
return
53-
}
54-
// Request Performed by DiscoveryClient to Kube API (Get API Groups)
55-
if req.URL.Path == "/apis" {
56-
_, _ = w.Write([]byte(`{"kind":"APIGroupList","apiVersion":"v1","groups":[]}`))
57-
return
58-
}
5953
// Request Performed by DiscoveryClient to Kube API (Get API Resources)
6054
if req.URL.Path == "/apis/metrics.k8s.io/v1beta1" {
6155
_, _ = w.Write([]byte(`{"kind":"APIResourceList","apiVersion":"v1","groupVersion":"metrics.k8s.io/v1beta1","resources":[{"name":"pods","singularName":"","namespaced":true,"kind":"PodMetrics","verbs":["get","list"]}]}`))
@@ -198,18 +192,8 @@ func (s *PodsTopSuite) TestPodsTopDenied() {
198192
s.Require().NoError(toml.Unmarshal([]byte(`
199193
denied_resources = [ { group = "metrics.k8s.io", version = "v1beta1" } ]
200194
`), s.Cfg), "Expected to parse denied resources config")
195+
s.discoveryHandler.Groups = []string{`{"name":"metrics.k8s.io","versions":[{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}],"preferredVersion":{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}}`}
201196
s.mockServer.Handle(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
202-
w.Header().Set("Content-Type", "application/json")
203-
// Request Performed by DiscoveryClient to Kube API (Get API Groups legacy -core-)
204-
if req.URL.Path == "/api" {
205-
_, _ = w.Write([]byte(`{"kind":"APIVersions","versions":["metrics.k8s.io/v1beta1"],"serverAddressByClientCIDRs":[{"clientCIDR":"0.0.0.0/0"}]}`))
206-
return
207-
}
208-
// Request Performed by DiscoveryClient to Kube API (Get API Groups)
209-
if req.URL.Path == "/apis" {
210-
_, _ = w.Write([]byte(`{"kind":"APIGroupList","apiVersion":"v1","groups":[]}`))
211-
return
212-
}
213197
// Request Performed by DiscoveryClient to Kube API (Get API Resources)
214198
if req.URL.Path == "/apis/metrics.k8s.io/v1beta1" {
215199
_, _ = w.Write([]byte(`{"kind":"APIResourceList","apiVersion":"v1","groupVersion":"metrics.k8s.io/v1beta1","resources":[{"name":"pods","singularName":"","namespaced":true,"kind":"PodMetrics","verbs":["get","list"]}]}`))

0 commit comments

Comments
 (0)