@@ -155,18 +155,11 @@ func TestGatewayLogJWKError(t *testing.T) {
155155 name string
156156 err error
157157 expectedLog string
158- shouldLog bool
159158 }{
160- {
161- name : "No error (nil)" ,
162- err : nil ,
163- shouldLog : false ,
164- },
165159 {
166160 name : "JSON Syntax Error" ,
167161 err : & json.SyntaxError {},
168162 expectedLog : "Invalid JWKS retrieved from endpoint: " + testURL ,
169- shouldLog : true ,
170163 },
171164 {
172165 name : "JSON Unmarshal Type Error" ,
@@ -175,67 +168,47 @@ func TestGatewayLogJWKError(t *testing.T) {
175168 Type : reflect .TypeOf ("" ),
176169 },
177170 expectedLog : "Invalid JWKS retrieved from endpoint: " + testURL ,
178- shouldLog : true ,
179- },
180- {
181- name : "String error containing 'invalid character'" ,
182- err : errors .New ("invalid character 'x' looking for beginning of value" ),
183- expectedLog : "Invalid JWKS retrieved from endpoint: " + testURL ,
184- shouldLog : true ,
185171 },
186172 {
187- name : "URL Error type " ,
173+ name : "URL Error" ,
188174 err : & url.Error {Op : "Get" , URL : testURL , Err : errors .New ("timeout" )},
189175 expectedLog : "JWKS endpoint resolution failed: invalid or unreachable host " + testURL ,
190- shouldLog : true ,
191176 },
192177 {
193- name : "Net DNS Error" ,
194- err : & net.DNSError {Err : "no such host" , Name : "example.com" },
178+ name : "Net DNS Error (implements net.Error) " ,
179+ err : & net.DNSError {Err : "no such host" , Name : "example.com" , IsNotFound : true },
195180 expectedLog : "JWKS endpoint resolution failed: invalid or unreachable host " + testURL ,
196- shouldLog : true ,
197181 },
198182 {
199- name : "Net OpError (Connection Refused )" ,
200- err : & net.OpError {Op : "dial" , Err : syscall . ECONNREFUSED },
183+ name : "Net OpError (implements net.Error )" ,
184+ err : & net.OpError {Op : "dial" , Net : "tcp" , Err : errors . New ( "timeout" ) },
201185 expectedLog : "JWKS endpoint resolution failed: invalid or unreachable host " + testURL ,
202- shouldLog : true ,
203186 },
204187 {
205- name : "String error containing 'dial tcp' " ,
206- err : errors . New ( "dial tcp: lookup failed" ) ,
188+ name : "Syscall Connection Refused " ,
189+ err : syscall . ECONNREFUSED ,
207190 expectedLog : "JWKS endpoint resolution failed: invalid or unreachable host " + testURL ,
208- shouldLog : true ,
209191 },
210192 {
211- name : "String error containing 'no such host' " ,
212- err : errors . New ( "Get: no such host" ) ,
193+ name : "Wrapped Connection Refused " ,
194+ err : & net. OpError { Op : "dial" , Err : syscall . ECONNREFUSED } ,
213195 expectedLog : "JWKS endpoint resolution failed: invalid or unreachable host " + testURL ,
214- shouldLog : true ,
215196 },
216197 {
217- name : "Generic/Fallback Error" ,
218- err : errors .New ("unknown internal server error " ),
198+ name : "Generic Error" ,
199+ err : errors .New ("something random " ),
219200 expectedLog : "Failed to fetch or decode JWKs from " + testURL ,
220- shouldLog : true ,
221201 },
222202 }
223203
224204 for _ , tc := range tests {
225205 t .Run (tc .name , func (t * testing.T ) {
226206 hook .Reset ()
227-
228207 gw .logJWKError (entry , testURL , tc .err )
229208
230- if ! tc .shouldLog {
231- assert .Empty (t , hook .Entries )
232- return
233- }
234-
235209 assert .Len (t , hook .Entries , 1 )
236210 assert .Equal (t , logrus .ErrorLevel , hook .LastEntry ().Level )
237211 assert .Equal (t , tc .expectedLog , hook .LastEntry ().Message )
238- assert .Equal (t , tc .err , hook .LastEntry ().Data ["error" ])
239212 })
240213 }
241214}
0 commit comments