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) }, } }