package main import ( "net/http" "net/http/httptest" "testing" "ginimageApi/app/middleware" "ginimageApi/routers" "github.com/gin-gonic/gin" ) func TestHTTPStackSmoke(t *testing.T) { gin.SetMode(gin.TestMode) t.Setenv("CORS_ALLOW_ORIGIN", "*") t.Setenv("RATE_LIMIT_RPM", "100") r := gin.New() r.Use(middleware.DynamicCORS()) r.Use(middleware.DynamicRateLimit()) routers.Setup(r) req := httptest.NewRequest(http.MethodPost, "/api/v1/auth/login", nil) w := httptest.NewRecorder() r.ServeHTTP(w, req) if w.Code == http.StatusNotFound { t.Fatalf("expected login route to be registered") } if got := w.Header().Get("Access-Control-Allow-Origin"); got == "" { t.Fatalf("expected CORS header to be present") } } func TestEnsureRequiredEnv(t *testing.T) { t.Setenv("JWT_SECRET", "") if err := ensureRequiredEnv(); err == nil { t.Fatalf("expected error when JWT_SECRET is empty") } t.Setenv("JWT_SECRET", "super-secret") if err := ensureRequiredEnv(); err != nil { t.Fatalf("expected nil error, got %v", err) } }