Skip to content

Commit 2e81ac3

Browse files
kyleconroyclaude
andcommitted
fix(sqltest): Restore SQLite helper functions for ncruces driver
The previous refactor accidentally removed the SQLite and CreateSQLiteDatabase functions from sqltest/sqlite.go, breaking example tests. This restores the functions while using the correct "sqlite3" driver name for ncruces/go-sqlite3. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent e7d227b commit 2e81ac3

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

internal/sqltest/sqlite.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,56 @@
33
package sqltest
44

55
import (
6+
"database/sql"
7+
"os"
8+
"path/filepath"
9+
"testing"
10+
611
_ "github.com/ncruces/go-sqlite3/driver"
712
_ "github.com/ncruces/go-sqlite3/embed"
13+
14+
"github.com/sqlc-dev/sqlc/internal/sql/sqlpath"
815
)
16+
17+
func SQLite(t *testing.T, migrations []string) (*sql.DB, func()) {
18+
t.Helper()
19+
// For each test, pick a new database name at random.
20+
source, err := os.CreateTemp("", "sqltest_sqlite_")
21+
if err != nil {
22+
t.Fatal(err)
23+
}
24+
if err := source.Close(); err != nil {
25+
t.Fatal(err)
26+
}
27+
return CreateSQLiteDatabase(t, source.Name(), migrations)
28+
}
29+
30+
func CreateSQLiteDatabase(t *testing.T, path string, migrations []string) (*sql.DB, func()) {
31+
t.Helper()
32+
33+
t.Logf("open %s\n", path)
34+
sdb, err := sql.Open("sqlite3", path)
35+
if err != nil {
36+
t.Fatal(err)
37+
}
38+
39+
files, err := sqlpath.Glob(migrations)
40+
if err != nil {
41+
t.Fatal(err)
42+
}
43+
for _, f := range files {
44+
blob, err := os.ReadFile(f)
45+
if err != nil {
46+
t.Fatal(err)
47+
}
48+
if _, err := sdb.Exec(string(blob)); err != nil {
49+
t.Fatalf("%s: %s", filepath.Base(f), err)
50+
}
51+
}
52+
53+
return sdb, func() {
54+
if _, err := os.Stat(path); err == nil {
55+
os.Remove(path)
56+
}
57+
}
58+
}

0 commit comments

Comments
 (0)