47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
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)
|
|
}
|
|
}
|