@@ -115,13 +115,56 @@ func TestVersions(t *testing.T) {
115
115
})
116
116
assert .Success (t , "failed to create client" , err )
117
117
118
- checker := NewKubernetesChecker (WithClient ( client ) , WithCoderVersion (test .CoderVersion ))
118
+ checker := NewKubernetesChecker (client , WithCoderVersion (test .CoderVersion ))
119
119
result := checker .CheckVersion (context .Background ())
120
120
assert .Equal (t , "check result matches" , test .ExpectedResult , result )
121
121
})
122
122
}
123
123
}
124
124
125
+ func TestUnknownRoute (t * testing.T ) {
126
+ t .Parallel ()
127
+
128
+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , req * http.Request ) {
129
+ w .Header ().Set ("Content-Type" , "application/json" )
130
+ w .WriteHeader (http .StatusNotFound )
131
+ }))
132
+ defer server .Close ()
133
+
134
+ client , err := kubernetes .NewForConfig (& rest.Config {
135
+ Host : server .URL ,
136
+ })
137
+ assert .Success (t , "failed to create client" , err )
138
+
139
+ checker := NewKubernetesChecker (client )
140
+ result := checker .CheckVersion (context .Background ())
141
+ assert .Equal (t , "failed check" , api .StateFailed , result .State )
142
+ assert .ErrorContains (t , "unknown route" , result .Details ["error" ].(error ), "the server could not find the requested resource" )
143
+ }
144
+
145
+ func TestCorruptResponse (t * testing.T ) {
146
+ t .Parallel ()
147
+
148
+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , req * http.Request ) {
149
+ w .Header ().Set ("Content-Type" , "application/json" )
150
+ w .WriteHeader (http .StatusOK )
151
+ err := json .NewEncoder (w ).Encode (map [string ]interface {}{
152
+ "gitVersion" : 10 ,
153
+ })
154
+ assert .Success (t , "failed to encode response" , err )
155
+ }))
156
+ defer server .Close ()
157
+
158
+ client , err := kubernetes .NewForConfig (& rest.Config {
159
+ Host : server .URL ,
160
+ })
161
+ assert .Success (t , "failed to create client" , err )
162
+
163
+ checker := NewKubernetesChecker (client )
164
+ result := checker .CheckVersion (context .Background ())
165
+ assert .Equal (t , "failed check" , api .StateFailed , result .State )
166
+ assert .ErrorContains (t , "unknown route" , result .Details ["error" ].(error ), "json: cannot unmarshal number into Go struct field Info.gitVersion of type string" )
167
+ }
125
168
func TestNearestVersion (t * testing.T ) {
126
169
t .Parallel ()
127
170
0 commit comments