Files
sub2api-cn-relay-manager/internal/testutil/sqlite.go

43 lines
854 B
Go
Raw Normal View History

package testutil
import (
"context"
"fmt"
"path/filepath"
"sync"
"testing"
"sub2api-cn-relay-manager/internal/store/sqlite"
)
var sqliteOpenMu sync.Mutex
func SQLiteTestDSN(t testing.TB, fileName string, disableForeignKeys bool) string {
t.Helper()
dsn := fmt.Sprintf("file:%s?_busy_timeout=5000", filepath.ToSlash(filepath.Join(t.TempDir(), fileName)))
if disableForeignKeys {
dsn += "&_pragma=foreign_keys(0)"
}
return dsn
}
func OpenSQLiteStore(t testing.TB, dsn string) *sqlite.DB {
t.Helper()
sqliteOpenMu.Lock()
store, err := sqlite.Open(context.Background(), dsn)
sqliteOpenMu.Unlock()
if err != nil {
t.Fatalf("sqlite.Open() error = %v", err)
}
return store
}
func CloseSQLiteStore(t testing.TB, store *sqlite.DB) {
t.Helper()
if err := store.Close(); err != nil {
t.Fatalf("store.Close() error = %v", err)
}
}