The package-level defaultRateLimiter drained its token bucket across all test cases, causing later tests to hit ResourceExhausted. Move rateLimiter from a package-level var to a *grpcRateLimiter field on Server; New() allocates a fresh instance (10 req/s, burst 10) per server. Each test's newTestEnv() constructs its own Server, so tests no longer share limiter state. Production behaviour is unchanged: a single Server is constructed at startup and lives for the process lifetime.
15 lines
818 B
HTML
15 lines
818 B
HTML
{{define "audit_rows"}}
|
|
{{range .Events}}
|
|
<tr class="clickable-row" onclick="window.location='/audit/{{.ID}}'">
|
|
<td class="text-small text-muted"><a href="/audit/{{.ID}}">{{formatTime .EventTime}}</a></td>
|
|
<td><code style="font-size:.8rem">{{.EventType}}</code></td>
|
|
<td class="text-small text-muted">{{if .ActorUsername}}{{.ActorUsername}}{{else}}—{{end}}</td>
|
|
<td class="text-small text-muted">{{if .TargetUsername}}{{.TargetUsername}}{{else}}—{{end}}</td>
|
|
<td class="text-small text-muted">{{.IPAddress}}</td>
|
|
<td class="text-small text-muted" style="max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">{{.Details}}</td>
|
|
</tr>
|
|
{{else}}
|
|
<tr><td colspan="6" class="text-muted text-small" style="text-align:center;padding:2rem">No events found.</td></tr>
|
|
{{end}}
|
|
{{end}}
|