MCPcopy Create free account
hub / github.com/coder/coder / TestFakeSink

Function TestFakeSink

testutil/fake_sink_test.go:15–170  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

13)
14
15func TestFakeSink(t *testing.T) {
16 t.Parallel()
17
18 t.Run("BasicCapture", func(t *testing.T) {
19 t.Parallel()
20 ctx := testutil.Context(t, testutil.WaitShort)
21
22 sink := testutil.NewFakeSink(t)
23 logger := sink.Logger()
24
25 logger.Debug(ctx, "first test message")
26 logger.Debug(ctx, "second test message")
27 logger.Debug(ctx, "third test message")
28
29 entries := sink.Entries()
30 require.Len(t, entries, 3)
31 })
32
33 t.Run("FilterByLevel", func(t *testing.T) {
34 t.Parallel()
35 ctx := testutil.Context(t, testutil.WaitShort)
36
37 sink := testutil.NewFakeSink(t)
38 logger := sink.Logger()
39
40 logger.Debug(ctx, "debug level message")
41 logger.Info(ctx, "info level message")
42 logger.Error(ctx, "error level message")
43
44 errorOnly := sink.Entries(func(e slog.SinkEntry) bool {
45 return e.Level == slog.LevelError
46 })
47 require.Len(t, errorOnly, 1)
48 assert.Equal(t, "error level message", errorOnly[0].Message)
49 })
50
51 t.Run("MultipleFiltersAND", func(t *testing.T) {
52 t.Parallel()
53 ctx := testutil.Context(t, testutil.WaitShort)
54
55 sink := testutil.NewFakeSink(t)
56 logger := sink.Logger()
57
58 logger.Info(ctx, "hello world filter test")
59 logger.Info(ctx, "goodbye world filter")
60 logger.Error(ctx, "hello error filter test")
61
62 byLevel := func(e slog.SinkEntry) bool {
63 return e.Level == slog.LevelInfo
64 }
65 byMessage := func(e slog.SinkEntry) bool {
66 return strings.Contains(e.Message, "hello")
67 }
68
69 matched := sink.Entries(byLevel, byMessage)
70 require.Len(t, matched, 1)
71 assert.Equal(t, "hello world filter test", matched[0].Message)
72 })

Callers

nothing calls this directly

Calls 14

LoggerMethod · 0.95
EntriesMethod · 0.95
ContextFunction · 0.92
NewFakeSinkFunction · 0.92
RunMethod · 0.65
AddMethod · 0.65
WaitMethod · 0.65
LenMethod · 0.45
InfoMethod · 0.45
ErrorMethod · 0.45
EqualMethod · 0.45
ContainsMethod · 0.45

Tested by

no test coverage detected