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