33 lines
1.0 KiB
Go
33 lines
1.0 KiB
Go
package server
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"chat-agent-system/internal/app"
|
|
"chat-agent-system/internal/auth"
|
|
"chat-agent-system/internal/authz"
|
|
)
|
|
|
|
func TestAdminErrorEvents_ForbiddenForNonAdmin(t *testing.T) {
|
|
s := &Server{rt: &app.Runtime{Authz: authz.NewService(nil)}}
|
|
req := httptest.NewRequest(http.MethodGet, "/api/v1/admin/system/error-events", nil)
|
|
req = req.WithContext(withPrincipal(req.Context(), &auth.UserAccount{ID: 2, RoleID: "role-member"}))
|
|
rec := httptest.NewRecorder()
|
|
s.handleAdminErrorEvents(rec, req)
|
|
if rec.Code != http.StatusForbidden {
|
|
t.Fatalf("status=%d body=%s", rec.Code, rec.Body.String())
|
|
}
|
|
}
|
|
|
|
func TestAdminErrorEvents_Unauthenticated(t *testing.T) {
|
|
s := &Server{rt: &app.Runtime{Authz: authz.NewService(nil)}}
|
|
req := httptest.NewRequest(http.MethodGet, "/api/v1/admin/system/error-events", nil)
|
|
rec := httptest.NewRecorder()
|
|
s.handleAdminErrorEvents(rec, req)
|
|
if rec.Code != http.StatusUnauthorized {
|
|
t.Fatalf("status=%d body=%s", rec.Code, rec.Body.String())
|
|
}
|
|
}
|