diff --git a/health.go b/health.go index 84e4bf6..26a426f 100644 --- a/health.go +++ b/health.go @@ -92,12 +92,13 @@ func (h *HealthServer) Start() error { return core.E("health.start", core.Concat("failed to listen on ", h.addr), err) } + server := &http.Server{Handler: mux} h.listener = listener - h.server = &http.Server{Handler: mux} + h.server = server - go func() { - _ = h.server.Serve(listener) - }() + go func(srv *http.Server, ln net.Listener) { + _ = srv.Serve(ln) + }(server, listener) return nil } diff --git a/health_test.go b/health_test.go index 32760d2..e3e025d 100644 --- a/health_test.go +++ b/health_test.go @@ -66,6 +66,12 @@ func TestHealthServer_WithChecks_Good(t *testing.T) { _ = resp.Body.Close() } +func TestHealthServer_StopImmediately_Good(t *testing.T) { + hs := NewHealthServer("127.0.0.1:0") + require.NoError(t, hs.Start()) + require.NoError(t, hs.Stop(context.Background())) +} + func TestWaitForHealth_Reachable_Good(t *testing.T) { hs := NewHealthServer("127.0.0.1:0") require.NoError(t, hs.Start())