diff --git a/internal/server/router_test.go b/internal/server/router_test.go index 42b9936..727c0f6 100644 --- a/internal/server/router_test.go +++ b/internal/server/router_test.go @@ -348,6 +348,8 @@ func TestRouterWithoutPageHandler(t *testing.T) { } func TestSwaggerRoute(t *testing.T) { + t.Setenv("GOYCO_ENV", "development") + t.Setenv("SWAGGER_ENABLED", "") router := createTestRouter(createDefaultRouterConfig()) request := httptest.NewRequest(http.MethodGet, "/swagger/", nil) @@ -360,6 +362,34 @@ func TestSwaggerRoute(t *testing.T) { } } +func TestSwaggerRouteHiddenInProduction(t *testing.T) { + t.Setenv("GOYCO_ENV", "production") + t.Setenv("SWAGGER_ENABLED", "") + router := createTestRouter(createDefaultRouterConfig()) + + request := httptest.NewRequest(http.MethodGet, "/swagger/", nil) + recorder := httptest.NewRecorder() + router.ServeHTTP(recorder, request) + + if recorder.Code != http.StatusNotFound { + t.Errorf("Expected 404 for swagger in production, got %d", recorder.Code) + } +} + +func TestSwaggerRouteEnabledInProductionWhenForced(t *testing.T) { + t.Setenv("GOYCO_ENV", "production") + t.Setenv("SWAGGER_ENABLED", "true") + router := createTestRouter(createDefaultRouterConfig()) + + request := httptest.NewRequest(http.MethodGet, "/swagger/", nil) + recorder := httptest.NewRecorder() + router.ServeHTTP(recorder, request) + + if recorder.Code != http.StatusOK && recorder.Code != http.StatusMovedPermanently { + t.Errorf("Expected status 200 or 301 for swagger when SWAGGER_ENABLED, got %d", recorder.Code) + } +} + func TestStaticFileRoute(t *testing.T) { cfg := createDefaultRouterConfig() cfg.StaticDir = "../../internal/static/"