package lkgateway import ( "net/http" "net/http/httptest" "testing" ) // Служебные разделы разработчиков вне режима разработки отвечают 404 — даже при открытом входе. func TestDevOnlyPaths(t *testing.T) { for _, p := range []string{"/admin/m2m-testing", "/admin/m2m-testing/preview", "/admin/setup/test-run", "/admin/api/callback-url", "/admin/help/robot"} { if !devOnlyPath(p) || requiredPerm(p, http.MethodGet) != "dev" { t.Errorf("%s должен быть служебным", p) } } for _, p := range []string{"/admin/m2m-testingx", "/admin/incoming", "/admin/setup", "/admin/help"} { if devOnlyPath(p) { t.Errorf("%s не служебный", p) } } rc, err := NewRuntimeConfig(t.TempDir() + "/setup.json") if err != nil { t.Fatal(err) } next := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusTeapot) }) h := authMiddleware(rc, next) rec := httptest.NewRecorder() h.ServeHTTP(rec, httptest.NewRequest(http.MethodGet, "/admin/m2m-testing", nil)) if rec.Code != http.StatusNotFound { t.Fatalf("вне режима разработки: %d", rec.Code) } }