mirror of
https://github.com/distribution/distribution
synced 2024-11-12 05:45:51 +01:00
5370f2c0be
Added a expvar style handler for the debug http server to allow health checks (/debug/health). Signed-off-by: Diogo Monica <diogo@docker.com>
48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
package health
|
|
|
|
import (
|
|
"errors"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
// TestReturns200IfThereAreNoChecks ensures that the result code of the health
|
|
// endpoint is 200 if there are not currently registered checks.
|
|
func TestReturns200IfThereAreNoChecks(t *testing.T) {
|
|
recorder := httptest.NewRecorder()
|
|
|
|
req, err := http.NewRequest("GET", "https://fakeurl.com/debug/health", nil)
|
|
if err != nil {
|
|
t.Errorf("Failed to create request.")
|
|
}
|
|
|
|
StatusHandler(recorder, req)
|
|
|
|
if recorder.Code != 200 {
|
|
t.Errorf("Did not get a 200.")
|
|
}
|
|
}
|
|
|
|
// TestReturns500IfThereAreErrorChecks ensures that the result code of the
|
|
// health endpoint is 500 if there are health checks with errors
|
|
func TestReturns503IfThereAreErrorChecks(t *testing.T) {
|
|
recorder := httptest.NewRecorder()
|
|
|
|
req, err := http.NewRequest("GET", "https://fakeurl.com/debug/health", nil)
|
|
if err != nil {
|
|
t.Errorf("Failed to create request.")
|
|
}
|
|
|
|
// Create a manual error
|
|
Register("some_check", CheckFunc(func() error {
|
|
return errors.New("This Check did not succeed")
|
|
}))
|
|
|
|
StatusHandler(recorder, req)
|
|
|
|
if recorder.Code != 503 {
|
|
t.Errorf("Did not get a 503.")
|
|
}
|
|
}
|