func TestHTTPHandlerReturnsAll(t *testing.T) { for name, fn := range published { health.RegisterFunc(name, fn) } handler := health.Handler() req, err := http.NewRequest("GET", "http://ignored.path.to.dontcare.example.com/", nil) assert.Nil(t, err) w := httptest.NewRecorder() handler(w, req) assert.Equal(t, health.HTTPStatusCodeHealthChecksFail, w.Code) var actual map[string]health.Status assert.Nil(t, json.Unmarshal(w.Body.Bytes(), &actual)) var expected = map[string]health.Status{ "pass": health.Healthy, "fail": health.StatusUnhealthy(FAILING, nil), "panic": health.StatusUnhealthy(health.CheckPanicked, errors.New("oops!")), } assert.Len(t, actual, len(expected)) assert.EqualValues(t, actual, expected) teardown() }
func TestHTTPHandlerFail(t *testing.T) { testCase := "fail" health.RegisterFunc(testCase, published[testCase]) handler := health.Handler() req, err := http.NewRequest("GET", "http://ignored.path.to.dontcare.example.com/", nil) assert.Nil(t, err) w := httptest.NewRecorder() handler(w, req) assert.Equal(t, health.HTTPStatusCodeHealthChecksFail, w.Code) teardown() }