mega-ci / static-release-gates (push) Failing after 11s
release-tag / release-image (push) Successful in 6m46s
mega-ci / go-quality (services/control) (push) Successful in 10m7s
mega-ci / go-quality (platform/neuroforge) (push) Successful in 10m20s
mega-ci / go-quality (services/agent) (push) Successful in 11m1s
mega-ci / go-quality (services/knowledge) (push) Successful in 11m13s
mega-ci / docker-build (push) Has been skipped
39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestBootstrapHandlerExposesLivenessAndStartupUI(t *testing.T) {
|
|
b := newBootstrapHandler()
|
|
b.SetPhase("hnsw.rebuild")
|
|
|
|
rr := httptest.NewRecorder()
|
|
b.ServeHTTP(rr, httptest.NewRequest(http.MethodGet, "/livez", nil))
|
|
if rr.Code != http.StatusOK || !strings.Contains(rr.Body.String(), "hnsw.rebuild") {
|
|
t.Fatalf("livez=%d %s", rr.Code, rr.Body.String())
|
|
}
|
|
|
|
rr = httptest.NewRecorder()
|
|
b.ServeHTTP(rr, httptest.NewRequest(http.MethodGet, "/readyz", nil))
|
|
if rr.Code != http.StatusServiceUnavailable {
|
|
t.Fatalf("readyz=%d", rr.Code)
|
|
}
|
|
|
|
rr = httptest.NewRecorder()
|
|
b.ServeHTTP(rr, httptest.NewRequest(http.MethodGet, "/admin", nil))
|
|
if rr.Code != http.StatusServiceUnavailable || !strings.Contains(rr.Body.String(), "hnsw.rebuild") {
|
|
t.Fatalf("admin=%d %s", rr.Code, rr.Body.String())
|
|
}
|
|
|
|
b.SetHandler(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusNoContent) }))
|
|
rr = httptest.NewRecorder()
|
|
b.ServeHTTP(rr, httptest.NewRequest(http.MethodGet, "/admin", nil))
|
|
if rr.Code != http.StatusNoContent {
|
|
t.Fatalf("delegated=%d", rr.Code)
|
|
}
|
|
}
|