chore: extract testutil.FakeSink for slog test assertions (#23208)

Follow-up to [review comment on
#23025](https://github.com/coder/coder/pull/23025#discussion_r2930309487)
from @mafredri.

Extracts the repeated `logSink` / `fakeSink` test pattern into a shared
`testutil.FakeSink` and migrates all existing call sites.

> 🤖 This PR was created with the help of Coder Agents, and will be
reviewed by my human. 🧑‍💻

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Cian Johnston
2026-03-18 17:02:38 +00:00
committed by GitHub
co-authored by Copilot Autofix powered by AI
parent 2577d16af2
commit 65b7658568
6 changed files with 314 additions and 137 deletions
+7 -15
View File
@@ -22,6 +22,7 @@ import (
"github.com/coder/coder/v2/enterprise/audit"
"github.com/coder/coder/v2/enterprise/audit/audittest"
"github.com/coder/coder/v2/enterprise/audit/backends"
"github.com/coder/coder/v2/testutil"
)
func TestSlogExporter(t *testing.T) {
@@ -32,8 +33,8 @@ func TestSlogExporter(t *testing.T) {
var (
ctx, cancel = context.WithCancel(context.Background())
sink = &fakeSink{}
logger = slog.Make(sink)
sink = testutil.NewFakeSink(t)
logger = sink.Logger(slog.LevelInfo)
exporter = backends.NewSlogExporter(logger)
alog = audittest.RandomLog()
@@ -42,9 +43,10 @@ func TestSlogExporter(t *testing.T) {
err := exporter.ExportStruct(ctx, alog, "audit_log")
require.NoError(t, err)
require.Len(t, sink.entries, 1)
require.Equal(t, sink.entries[0].Message, "audit_log")
require.Len(t, sink.entries[0].Fields, len(structs.Fields(alog)))
entries := sink.Entries()
require.Len(t, entries, 1)
require.Equal(t, entries[0].Message, "audit_log")
require.Len(t, entries[0].Fields, len(structs.Fields(alog)))
})
t.Run("FormatsCorrectly", func(t *testing.T) {
t.Parallel()
@@ -98,13 +100,3 @@ func TestSlogExporter(t *testing.T) {
assert.Equal(t, expected, string(s.Fields))
})
}
type fakeSink struct {
entries []slog.SinkEntry
}
func (s *fakeSink) LogEntry(_ context.Context, e slog.SinkEntry) {
s.entries = append(s.entries, e)
}
func (*fakeSink) Sync() {}