@@ -13,13 +13,17 @@ import (
1313
1414type PodsTopSuite struct {
1515 BaseMcpSuite
16- mockServer * test.MockServer
16+ mockServer * test.MockServer
17+ discoveryHandler * test.DiscoveryClientHandler
1718}
1819
1920func (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
2529func (s * PodsTopSuite ) TearDownTest () {
@@ -30,7 +34,6 @@ func (s *PodsTopSuite) TearDownTest() {
3034}
3135
3236func (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
4649func (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