package store
import (
"path/filepath"
"testing"
)
func TestAuditAppendAndList(t *testing.T) {
s, err := Open(filepath.Join(t.TempDir(), "gitfed.db"))
if err != nil {
t.Fatalf("open: %v", err)
}
defer s.Close()
for _, action := range []string{"first", "second", "third"} {
if err := s.AppendAudit(AuditEvent{Action: action, Allowed: true}); err != nil {
t.Fatalf("append %q: %v", action, err)
}
}
events, err := s.ListAudit(10)
if err != nil {
t.Fatalf("list: %v", err)
}
if len(events) != 3 {
t.Fatalf("got %d events, want 3", len(events))
}
// newest first
want := []string{"third", "second", "first"}
for i, e := range events {
if e.Action != want[i] {
t.Errorf("event %d: got action %q, want %q", i, e.Action, want[i])
}
}
limited, err := s.ListAudit(2)
if err != nil {
t.Fatalf("list limited: %v", err)
}
if len(limited) != 2 || limited[0].Action != "third" || limited[1].Action != "second" {
t.Errorf("limited list = %+v, want [third second]", limited)
}
}