diff options
Diffstat (limited to 'testing.go')
| -rw-r--r-- | testing.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/testing.go b/testing.go new file mode 100644 index 0000000..d4a8457 --- /dev/null +++ b/testing.go @@ -0,0 +1,50 @@ +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) +} |
