package main import ( "database/sql" "fmt" "os" "path/filepath" "testing" _ "github.com/mattn/go-sqlite3" ) func newSite(t *testing.T) string { site, err := os.MkdirTemp("", "finserv-testing-") if err != nil { t.Fatalf("Error creating test site '%s': %v", site, err) } t.Cleanup(func() { os.RemoveAll(site) t.Logf("Removed test site '%s'.", site) }) t.Logf("Created test site '%s'.", site) return site } func emptyDB(t *testing.T) (*sql.DB, string) { site := newSite(t) path := filepath.Join(site, "main.sqlite3") db, err := sql.Open("sqlite3", path) if err != nil { t.Fatalf("Failed to open SQLite3 database '%s': %v", path, err) } t.Cleanup(func() { db.Close() t.Logf("Removed test database '%s'.", path) }) t.Logf("Created test database '%s'.", path) return db, path } func migrationPath(index int) string { name := fmt.Sprintf(migrationFilePattern, index+1) return filepath.Join(migrationDir, name) }