This commit is contained in:
David Schroeder
2026-07-25 15:18:21 -05:00
parent 6594aece09
commit 1dcfc56844
11 changed files with 369 additions and 164 deletions
+13 -2
View File
@@ -37,6 +37,16 @@ func TestAuditFiltersDefaultToThirtyDays(t *testing.T) {
}
}
func TestHasAuditQuery(t *testing.T) {
t.Parallel()
if !hasAuditQuery(httptest.NewRequest("GET", "/portal?audit_hostname=pve01", nil)) {
t.Fatal("expected audit query to be detected")
}
if hasAuditQuery(httptest.NewRequest("GET", "/portal?notice=updated", nil)) {
t.Fatal("non-audit query must stay on the Codes view")
}
}
func TestAuditQueryUsesPlaceholders(t *testing.T) {
t.Parallel()
filters := auditFilters{
@@ -48,14 +58,14 @@ func TestAuditQueryUsesPlaceholders(t *testing.T) {
SourceIP: "10.10.1.25",
Details: "install-rmm",
}
query, arguments := auditQuery(filters)
query, arguments := auditQuery(filters, 250)
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") {
if !strings.HasSuffix(query, "ORDER BY created_at DESC LIMIT ?") {
t.Fatalf("query has unexpected limit: %s", query)
}
expectedArguments := []any{
@@ -65,6 +75,7 @@ func TestAuditQueryUsesPlaceholders(t *testing.T) {
"sentinelone-linux",
"10.10.1.25",
"install-rmm",
250,
}
if !reflect.DeepEqual(arguments, expectedArguments) {
t.Fatalf("arguments = %#v, want %#v", arguments, expectedArguments)