feat: add optional GORM pool and SQL logging adapter
This commit is contained in:
48
scripts/testdata/gormGenerated_test.go
vendored
Normal file
48
scripts/testdata/gormGenerated_test.go
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"example.com/mysqlAcceptance/internal/config"
|
||||
"example.com/mysqlAcceptance/internal/svc"
|
||||
"git.yuntuo.hk/k2safe/go-omni/logx"
|
||||
)
|
||||
|
||||
func TestGeneratedOptionalGORM(t *testing.T) {
|
||||
cfg, err := config.Load("etc/config.yaml")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
logger, err := logx.New(logx.Config{Writer: io.Discard})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer logger.Close()
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
c, err := svc.New(ctx, logger, cfg)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer c.Close()
|
||||
if c.ORM == nil {
|
||||
t.Fatal("svc.Init did not provide GORM")
|
||||
}
|
||||
pool, err := c.ORM.DB()
|
||||
if err != nil || pool != c.DB.DB {
|
||||
t.Fatal("GORM created another pool", err)
|
||||
}
|
||||
var value int
|
||||
if err = c.ORM.WithContext(ctx).Raw("SELECT ?", 42).Scan(&value).Error; err != nil || value != 42 {
|
||||
t.Fatal(value, err)
|
||||
}
|
||||
if err = c.Finish(nil); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err = c.ORM.WithContext(ctx).Raw("SELECT 1").Scan(&value).Error; err == nil {
|
||||
t.Fatal("ORM did not follow owner shutdown")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user