package main import ( "net/http" "net/http/httptest" "testing" "github.com/stretchr/testify/assert" ) func TestSecurityHeadersMiddleware(t *testing.T) { nextHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) }) middleware := securityHeadersMiddleware(nextHandler) req := httptest.NewRequest("GET", "/", nil) rr := httptest.NewRecorder() middleware.ServeHTTP(rr, req) assert.Equal(t, "max-age=63072000; includeSubDomains", rr.Header().Get("Strict-Transport-Security")) assert.Equal(t, "nosniff", rr.Header().Get("X-Content-Type-Options")) assert.Equal(t, "DENY", rr.Header().Get("X-Frame-Options")) assert.Contains(t, rr.Header().Get("Content-Security-Policy"), "default-src 'self'") }