update
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"net/http/httptest"
|
||||
"reflect"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestAuditFiltersFromRequest(t *testing.T) {
|
||||
t.Parallel()
|
||||
request := httptest.NewRequest(
|
||||
"GET",
|
||||
"/portal?audit_range=7d&audit_event=package_downloaded&audit_actor=taiadmin&audit_hostname=pve01&audit_package=sentinelone-linux&audit_ip=10.10.1.25&audit_details=install-rmm",
|
||||
nil,
|
||||
)
|
||||
filters := auditFiltersFromRequest(request)
|
||||
expected := auditFilters{
|
||||
TimeRange: "7d",
|
||||
EventType: "package_downloaded",
|
||||
Actor: "taiadmin",
|
||||
Hostname: "pve01",
|
||||
PackageSlug: "sentinelone-linux",
|
||||
SourceIP: "10.10.1.25",
|
||||
Details: "install-rmm",
|
||||
}
|
||||
if !reflect.DeepEqual(filters, expected) {
|
||||
t.Fatalf("filters = %#v, want %#v", filters, expected)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAuditFiltersDefaultToThirtyDays(t *testing.T) {
|
||||
t.Parallel()
|
||||
request := httptest.NewRequest("GET", "/portal?audit_range=invalid", nil)
|
||||
if filters := auditFiltersFromRequest(request); filters.TimeRange != "30d" {
|
||||
t.Fatalf("time range = %q, want 30d", filters.TimeRange)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAuditQueryUsesPlaceholders(t *testing.T) {
|
||||
t.Parallel()
|
||||
filters := auditFilters{
|
||||
TimeRange: "all",
|
||||
EventType: "package_downloaded",
|
||||
Actor: "taiadmin",
|
||||
Hostname: "pve01",
|
||||
PackageSlug: "sentinelone-linux",
|
||||
SourceIP: "10.10.1.25",
|
||||
Details: "install-rmm",
|
||||
}
|
||||
query, arguments := auditQuery(filters)
|
||||
if strings.Contains(query, filters.Actor) || strings.Contains(query, filters.Hostname) {
|
||||
t.Fatal("filter values must not be interpolated into the SQL query")
|
||||
}
|
||||
if strings.Contains(query, "INTERVAL") {
|
||||
t.Fatal("all-time query must not include a time restriction")
|
||||
}
|
||||
if !strings.HasSuffix(query, "ORDER BY created_at DESC LIMIT 250") {
|
||||
t.Fatalf("query has unexpected limit: %s", query)
|
||||
}
|
||||
expectedArguments := []any{
|
||||
"package_downloaded",
|
||||
"taiadmin",
|
||||
"pve01",
|
||||
"sentinelone-linux",
|
||||
"10.10.1.25",
|
||||
"install-rmm",
|
||||
}
|
||||
if !reflect.DeepEqual(arguments, expectedArguments) {
|
||||
t.Fatalf("arguments = %#v, want %#v", arguments, expectedArguments)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user