Skip to content

Commit 2b30dfa

Browse files
committed
duckdb: align tests with sqlite
1 parent 0994939 commit 2b30dfa

File tree

1 file changed

+50
-8
lines changed

1 file changed

+50
-8
lines changed

database/duckdb/duckdb_test.go

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package duckdb
22

33
import (
4+
"database/sql"
45
"fmt"
56
"path/filepath"
67
"testing"
78

9+
"github.com/stretchr/testify/assert"
10+
811
_ "github.com/duckdb/duckdb-go/v2"
912
"github.com/golang-migrate/migrate/v4"
1013
dt "github.com/golang-migrate/migrate/v4/database/testing"
@@ -28,26 +31,64 @@ func Test(t *testing.T) {
2831
func TestMigrate(t *testing.T) {
2932
dir := t.TempDir()
3033
dbFile := filepath.Join(dir, "test.duckdb")
31-
addr := fmt.Sprintf("duckdb://%s", dbFile)
3234

33-
ddb := &DuckDB{}
34-
d, err := ddb.Open(addr)
35+
db, err := sql.Open("duckdb", dbFile)
3536
if err != nil {
36-
t.Fatalf("calling Open() on addr %s: %s", addr, err)
37+
t.Fatalf("sql open: %s", err)
38+
}
39+
defer db.Close()
40+
41+
driver, err := WithInstance(db, &Config{})
42+
if err != nil {
43+
t.Fatalf("with instance: %s", err)
3744
}
3845

3946
m, err := migrate.NewWithDatabaseInstance(
4047
"file://./examples/migrations",
4148
"main",
42-
d,
43-
)
49+
driver)
4450
if err != nil {
4551
t.Fatalf("new migrate: %s", err)
4652
}
4753

4854
dt.TestMigrate(t, m)
4955
}
5056

57+
func TestMigrationTable(t *testing.T) {
58+
dir := t.TempDir()
59+
dbFile := filepath.Join(dir, "test.duckdb")
60+
61+
db, err := sql.Open("duckdb", dbFile)
62+
if err != nil {
63+
t.Fatalf("sql open: %s", err)
64+
}
65+
defer db.Close()
66+
67+
config := &Config{
68+
MigrationsTable: "custom_migrations",
69+
}
70+
driver, err := WithInstance(db, config)
71+
if err != nil {
72+
t.Fatalf("with instance: %s", err)
73+
}
74+
75+
m, err := migrate.NewWithDatabaseInstance(
76+
"file://./examples/migrations",
77+
"main",
78+
driver)
79+
if err != nil {
80+
t.Fatalf("new migrate: %s", err)
81+
}
82+
83+
if err := m.Up(); err != nil {
84+
t.Fatalf("up: %s", err)
85+
}
86+
87+
if _, err := db.Query(fmt.Sprintf("SELECT * FROM %s", config.MigrationsTable)); err != nil {
88+
t.Fatalf("query migrations table: %s", err)
89+
}
90+
}
91+
5192
func TestNoTxWrap(t *testing.T) {
5293
dir := t.TempDir()
5394
dbFile := filepath.Join(dir, "test.duckdb")
@@ -69,7 +110,8 @@ func TestNoTxWrapInvalidValue(t *testing.T) {
69110

70111
ddb := &DuckDB{}
71112
_, err := ddb.Open(addr)
72-
if err == nil {
73-
t.Fatal("expected error for invalid x-no-tx-wrap value")
113+
if assert.Error(t, err) {
114+
assert.Contains(t, err.Error(), "x-no-tx-wrap")
115+
assert.Contains(t, err.Error(), "invalid syntax")
74116
}
75117
}

0 commit comments

Comments
 (0)