package httpx import ( "net/http" "net/http/httptest" "testing" "github.com/gin-gonic/gin" "github.com/stretchr/testify/require" "senlinai-agent/backend/internal/config" ) func TestHealthz(t *testing.T) { router := NewRouter(config.Config{Env: "test"}) req := httptest.NewRequest(http.MethodGet, "/healthz", nil) rec := httptest.NewRecorder() router.ServeHTTP(rec, req) require.Equal(t, http.StatusOK, rec.Code) require.JSONEq(t, `{"status":"ok"}`, rec.Body.String()) } func TestNewRouterRegistersFeatureRoutesUnderAPI(t *testing.T) { router := NewRouter(config.Config{Env: "test"}, testRegistrar{}) req := httptest.NewRequest(http.MethodGet, "/api/ping", nil) rec := httptest.NewRecorder() router.ServeHTTP(rec, req) require.Equal(t, http.StatusOK, rec.Code) require.JSONEq(t, `{"pong":true}`, rec.Body.String()) } type testRegistrar struct{} func (testRegistrar) Register(router gin.IRouter) { router.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"pong": true}) }) }