distribution: TestPullSchema2Config fix test response
The test was depending on the client constructing an error based on the http-status code, and the client not reading the response body if the response was not a JSON response. This fix; - adds the correct content-type headers in the response - includes error-messages in the response - adds additional tests to cover both the plain (non-JSON) and JSON error responses, as well as an empty response. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
a9fcb775e5
commit
2c89640ab9
1 changed files with 21 additions and 0 deletions
|
@ -268,6 +268,27 @@ func TestPullSchema2Config(t *testing.T) {
|
|||
name: "unauthorized",
|
||||
handler: func(callCount int, w http.ResponseWriter) {
|
||||
w.WriteHeader(http.StatusUnauthorized)
|
||||
// FIXME: current distribution client does not handle plain-text error-responses, so this response is ignored.
|
||||
_, _ = w.Write([]byte("you need to be authenticated"))
|
||||
},
|
||||
expectError: "unauthorized: authentication required",
|
||||
expectAttempts: 1,
|
||||
},
|
||||
{
|
||||
name: "unauthorized JSON",
|
||||
handler: func(callCount int, w http.ResponseWriter) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.WriteHeader(http.StatusUnauthorized)
|
||||
_, _ = w.Write([]byte(` { "errors": [{"code": "UNAUTHORIZED", "message": "you need to be authenticated", "detail": "more detail"}]}`))
|
||||
},
|
||||
expectError: "unauthorized: you need to be authenticated",
|
||||
expectAttempts: 1,
|
||||
},
|
||||
{
|
||||
name: "unauthorized JSON no body",
|
||||
handler: func(callCount int, w http.ResponseWriter) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.WriteHeader(http.StatusUnauthorized)
|
||||
},
|
||||
expectError: "unauthorized: authentication required",
|
||||
expectAttempts: 1,
|
||||
|
|
Loading…
Reference in a new issue