Skip to content

Commit 8debcd4

Browse files
committed
duckdb: align tests with sqlite
1 parent 0994939 commit 8debcd4

File tree

1 file changed

+54
-8
lines changed

1 file changed

+54
-8
lines changed

database/duckdb/duckdb_test.go

Lines changed: 54 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,68 @@ 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 func() {
40+
assert.NoError(t, db.Close())
41+
}()
42+
43+
driver, err := WithInstance(db, &Config{})
44+
if err != nil {
45+
t.Fatalf("with instance: %s", err)
3746
}
3847

3948
m, err := migrate.NewWithDatabaseInstance(
4049
"file://./examples/migrations",
4150
"main",
42-
d,
43-
)
51+
driver)
4452
if err != nil {
4553
t.Fatalf("new migrate: %s", err)
4654
}
4755

4856
dt.TestMigrate(t, m)
4957
}
5058

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

70115
ddb := &DuckDB{}
71116
_, err := ddb.Open(addr)
72-
if err == nil {
73-
t.Fatal("expected error for invalid x-no-tx-wrap value")
117+
if assert.Error(t, err) {
118+
assert.Contains(t, err.Error(), "x-no-tx-wrap")
119+
assert.Contains(t, err.Error(), "invalid syntax")
74120
}
75121
}

0 commit comments

Comments
 (0)