Files
go-omni/scripts/testdata/gormGenerated_test.go

49 lines
1.1 KiB
Go

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")
}
}