Files
claw-email/internal/database/testhelper.go
T
thuanleandClaude Opus 4.7 8815c20c13 Initial commit: email-openclaw bridge v1
Full pipeline: IMAP ingress -> OpenClaw dispatch -> callback -> SMTP reply.
SQLite stateful storage with idempotency, threading, and retry logic.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-27 18:16:57 +07:00

36 lines
540 B
Go

package database
import (
"os"
"path/filepath"
"testing"
"gorm.io/gorm"
)
// TestDB holds a test database instance with automatic cleanup.
type TestDB struct {
DB *gorm.DB
cleanup func()
}
// NewTestDB creates a temporary SQLite database for testing.
func NewTestDB(t *testing.T) *TestDB {
t.Helper()
dir := t.TempDir()
dbPath := filepath.Join(dir, "test.db")
db, err := Open(dbPath)
if err != nil {
t.Fatalf("open test db: %v", err)
}
return &TestDB{
DB: db,
cleanup: func() {
os.RemoveAll(dir)
},
}
}