feat: add audit exporting and filtering (#1314)

This commit is contained in:
Colin Adler
2022-05-09 17:05:01 -05:00
committed by GitHub
parent ac27f645eb
commit 20caee1502
15 changed files with 448 additions and 14 deletions

View File

@ -0,0 +1,46 @@
package backends_test
import (
"context"
"testing"
"github.com/fatih/structs"
"github.com/stretchr/testify/require"
"cdr.dev/slog"
"github.com/coder/coder/coderd/audit/backends"
)
func TestSlogBackend(t *testing.T) {
t.Parallel()
t.Run("OK", func(t *testing.T) {
t.Parallel()
var (
ctx, cancel = context.WithCancel(context.Background())
sink = &fakeSink{}
logger = slog.Make(sink)
backend = backends.NewSlog(logger)
alog = randomAuditLog()
)
defer cancel()
err := backend.Export(ctx, alog)
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)))
})
}
type fakeSink struct {
entries []slog.SinkEntry
}
func (s *fakeSink) LogEntry(_ context.Context, e slog.SinkEntry) {
s.entries = append(s.entries, e)
}
func (*fakeSink) Sync() {}