Files
summercms/modules/lagoon/logger_smoke_test.go
Jakub Zych e6b20e2cb6 feat(conga,lagoon): River and GORM log through diary components
- River's logger is diary.For("river") (warn by default), conga's own lines diary.For("conga"); an app-published logger still wins
- GORM logs through logger.NewSlogLogger(diary.For("db")): warn level, record-not-found ignored, parameterized SQL traces only at verbosity 3
- Smoke tests TestRiverLoggerUsesDiarySmoke and TestGormLoggerUsesDiarySmoke
2026-10-21 11:51:57 +02:00

38 lines
1.0 KiB
Go

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