package lagoon import ( "bytes" "context" "strings" "testing" "git.golem15.com/golem15/summercms/modules/bonfire" "git.golem15.com/golem15/summercms/modules/diary" ) // TestGormLoggerUsesDiarySmoke: GORM logs through the diary component db, // and only reports info lines (SQL traces) at verbosity 3. func TestGormLoggerUsesDiarySmoke(t *testing.T) { var buf bytes.Buffer t.Cleanup(diary.Reset) diary.Bootstrap(&buf, diary.Options{Color: bonfire.ColorNever}) ctx := context.Background() gormLogger().Warn(ctx, "slow %s", "query") if !strings.Contains(buf.String(), "component=db") { t.Fatalf("GORM record lacks component=db:\n%s", buf.String()) } buf.Reset() gormLogger().Info(ctx, "trace at default verbosity") if buf.Len() != 0 { t.Fatalf("GORM info line logged at verbosity 0:\n%s", buf.String()) } diary.SetVerbosity(3, false) gormLogger().Info(ctx, "trace at verbosity 3") if !strings.Contains(buf.String(), "trace at verbosity 3") { t.Fatalf("GORM info line missing at verbosity 3:\n%s", buf.String()) } }