package database import ( "log/slog" "os" "testing" "git.eeqj.de/sneak/upaas/internal/config" "git.eeqj.de/sneak/upaas/internal/logger" ) // NewTestDatabase creates an in-memory Database for testing. // It runs migrations so all tables are available. func NewTestDatabase(t *testing.T) *Database { t.Helper() tmpDir := t.TempDir() cfg := &config.Config{ DataDir: tmpDir, } log := slog.New(slog.NewTextHandler(os.Stderr, nil)) logWrapper := logger.NewForTest(log) db, err := New(nil, Params{ Logger: logWrapper, Config: cfg, }) if err != nil { t.Fatalf("failed to create test database: %v", err) } t.Cleanup(func() { if db.database != nil { _ = db.database.Close() } }) return db }