Add HTTP /v1 MVC, TCP send path, groups with server-side member-avatar collage, object-storage upload, and friends/favorites around the architecture-v3 layout. Co-authored-by: Cursor <cursoragent@cursor.com>
61 lines
1.6 KiB
Go
61 lines
1.6 KiB
Go
package mysql
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
"time"
|
|
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
"go.uber.org/zap/zaptest/observer"
|
|
"gorm.io/gorm"
|
|
gormlogger "gorm.io/gorm/logger"
|
|
)
|
|
|
|
func TestGormLoggerTrace(t *testing.T) {
|
|
core, logs := observer.New(zapcore.DebugLevel)
|
|
z := zap.New(core)
|
|
gl := newGormLogger(z, time.Millisecond, gormlogger.Info)
|
|
gl.Trace(context.Background(), time.Now().Add(-10*time.Millisecond), func() (string, int64) {
|
|
return "SELECT 1", 1
|
|
}, nil)
|
|
if logs.FilterMessage("sql_slow").Len() != 1 {
|
|
t.Fatalf("want sql_slow, got %+v", logs.All())
|
|
}
|
|
gl.Trace(context.Background(), time.Now(), func() (string, int64) {
|
|
return "SELECT 2", 1
|
|
}, nil)
|
|
if logs.FilterMessage("sql").Len() < 1 {
|
|
t.Fatalf("want sql, got %+v", logs.All())
|
|
}
|
|
gl.Trace(context.Background(), time.Now(), func() (string, int64) {
|
|
return "SELECT 3", 0
|
|
}, errors.New("boom"))
|
|
if logs.FilterMessage("sql").FilterLevelExact(zapcore.ErrorLevel).Len() < 1 {
|
|
t.Fatalf("want sql error, got %+v", logs.All())
|
|
}
|
|
gl.Trace(context.Background(), time.Now(), func() (string, int64) {
|
|
return "SELECT 4", 0
|
|
}, gorm.ErrRecordNotFound)
|
|
}
|
|
|
|
func TestParseGormLevel(t *testing.T) {
|
|
if parseGormLevel("", "debug") != gormlogger.Info {
|
|
t.Fatal("debug follows zap")
|
|
}
|
|
if parseGormLevel("", "info") != gormlogger.Warn {
|
|
t.Fatal("info default warn")
|
|
}
|
|
if parseGormLevel("silent", "debug") != gormlogger.Silent {
|
|
t.Fatal("silent")
|
|
}
|
|
}
|
|
|
|
func TestOpenEmptyDSN(t *testing.T) {
|
|
db, err := Open(zap.NewNop(), &Options{})
|
|
if err != nil || db.Ready() {
|
|
t.Fatalf("empty dsn %v ready=%v", err, db.Ready())
|
|
}
|
|
}
|