Skip to content

Commit 64352cb

Browse files
committed
refactor: use interface to pass db settings
1 parent 5ff4dab commit 64352cb

File tree

2 files changed

+31
-21
lines changed

2 files changed

+31
-21
lines changed

sqlite.go

+10-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package sqlite
22

33
import (
4-
"fmt"
5-
"github.com/uozi-tech/cosy/settings"
6-
"gorm.io/driver/sqlite"
7-
"gorm.io/gorm"
8-
"path"
4+
"fmt"
5+
"gorm.io/driver/sqlite"
6+
"gorm.io/gorm"
7+
"path"
98
)
109

11-
func Open(dir string, dbs *settings.DataBase) gorm.Dialector {
12-
return sqlite.Open(path.Join(dir, fmt.Sprintf("%s.db", dbs.Name)))
10+
type DBSettings interface {
11+
GetName() string
12+
}
13+
14+
func Open(dir string, dbs DBSettings) gorm.Dialector {
15+
return sqlite.Open(path.Join(dir, fmt.Sprintf("%s.db", dbs.GetName())))
1316
}

sqlite_test.go

+21-14
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,30 @@
11
package sqlite
22

33
import (
4-
"github.com/uozi-tech/cosy/settings"
5-
"gorm.io/driver/sqlite"
6-
"testing"
4+
"gorm.io/driver/sqlite"
5+
"testing"
76
)
87

8+
type DataBase struct {
9+
Name string
10+
}
11+
12+
func (d *DataBase) GetName() string {
13+
return d.Name
14+
}
15+
916
func TestOpen(t *testing.T) {
10-
dbs := &settings.DataBase{
11-
Name: "cosy",
12-
}
17+
dbs := &DataBase{
18+
Name: "cosy",
19+
}
1320

14-
dialector := Open("", dbs)
21+
dialector := Open("", dbs)
1522

16-
d, ok := dialector.(*sqlite.Dialector)
17-
if !ok {
18-
t.Fatal("dialector is not *Dialector")
19-
}
20-
if d.DSN == "" {
21-
t.Error("dialector.DSN is empty")
22-
}
23+
d, ok := dialector.(*sqlite.Dialector)
24+
if !ok {
25+
t.Fatal("dialector is not *Dialector")
26+
}
27+
if d.DSN == "" {
28+
t.Error("dialector.DSN is empty")
29+
}
2330
}

0 commit comments

Comments
 (0)