chore: clean .gitignore cache
This commit is contained in:
@@ -1,101 +0,0 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/Wikid82/charon/backend/internal/config"
|
||||
)
|
||||
|
||||
func TestSecurityHandler_GetRateLimitPresets(t *testing.T) {
|
||||
gin.SetMode(gin.TestMode)
|
||||
|
||||
cfg := config.SecurityConfig{}
|
||||
handler := NewSecurityHandler(cfg, nil, nil)
|
||||
router := gin.New()
|
||||
router.GET("/security/rate-limit/presets", handler.GetRateLimitPresets)
|
||||
|
||||
w := httptest.NewRecorder()
|
||||
req, _ := http.NewRequest("GET", "/security/rate-limit/presets", http.NoBody)
|
||||
router.ServeHTTP(w, req)
|
||||
|
||||
assert.Equal(t, http.StatusOK, w.Code)
|
||||
|
||||
var response map[string]any
|
||||
err := json.Unmarshal(w.Body.Bytes(), &response)
|
||||
require.NoError(t, err)
|
||||
|
||||
presets, ok := response["presets"].([]any)
|
||||
require.True(t, ok, "presets should be an array")
|
||||
require.Len(t, presets, 4, "should have 4 presets")
|
||||
|
||||
// Verify preset structure
|
||||
expectedIDs := []string{"standard", "api", "login", "relaxed"}
|
||||
for i, p := range presets {
|
||||
preset := p.(map[string]any)
|
||||
assert.Equal(t, expectedIDs[i], preset["id"])
|
||||
assert.NotEmpty(t, preset["name"])
|
||||
assert.NotEmpty(t, preset["description"])
|
||||
assert.NotNil(t, preset["requests"])
|
||||
assert.NotNil(t, preset["window_sec"])
|
||||
assert.NotNil(t, preset["burst"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestSecurityHandler_GetRateLimitPresets_StandardPreset(t *testing.T) {
|
||||
gin.SetMode(gin.TestMode)
|
||||
|
||||
cfg := config.SecurityConfig{}
|
||||
handler := NewSecurityHandler(cfg, nil, nil)
|
||||
router := gin.New()
|
||||
router.GET("/security/rate-limit/presets", handler.GetRateLimitPresets)
|
||||
|
||||
w := httptest.NewRecorder()
|
||||
req, _ := http.NewRequest("GET", "/security/rate-limit/presets", http.NoBody)
|
||||
router.ServeHTTP(w, req)
|
||||
|
||||
var response map[string]any
|
||||
err := json.Unmarshal(w.Body.Bytes(), &response)
|
||||
require.NoError(t, err)
|
||||
|
||||
presets := response["presets"].([]any)
|
||||
standardPreset := presets[0].(map[string]any)
|
||||
|
||||
assert.Equal(t, "standard", standardPreset["id"])
|
||||
assert.Equal(t, "Standard Web", standardPreset["name"])
|
||||
assert.Equal(t, float64(100), standardPreset["requests"])
|
||||
assert.Equal(t, float64(60), standardPreset["window_sec"])
|
||||
assert.Equal(t, float64(20), standardPreset["burst"])
|
||||
}
|
||||
|
||||
func TestSecurityHandler_GetRateLimitPresets_LoginPreset(t *testing.T) {
|
||||
gin.SetMode(gin.TestMode)
|
||||
|
||||
cfg := config.SecurityConfig{}
|
||||
handler := NewSecurityHandler(cfg, nil, nil)
|
||||
router := gin.New()
|
||||
router.GET("/security/rate-limit/presets", handler.GetRateLimitPresets)
|
||||
|
||||
w := httptest.NewRecorder()
|
||||
req, _ := http.NewRequest("GET", "/security/rate-limit/presets", http.NoBody)
|
||||
router.ServeHTTP(w, req)
|
||||
|
||||
var response map[string]any
|
||||
err := json.Unmarshal(w.Body.Bytes(), &response)
|
||||
require.NoError(t, err)
|
||||
|
||||
presets := response["presets"].([]any)
|
||||
loginPreset := presets[2].(map[string]any)
|
||||
|
||||
assert.Equal(t, "login", loginPreset["id"])
|
||||
assert.Equal(t, "Login Protection", loginPreset["name"])
|
||||
assert.Equal(t, float64(5), loginPreset["requests"])
|
||||
assert.Equal(t, float64(300), loginPreset["window_sec"])
|
||||
assert.Equal(t, float64(2), loginPreset["burst"])
|
||||
}
|
||||
Reference in New Issue
Block a user