starlog/keyword_preset_test.go

92 lines
2.4 KiB
Go
Raw Normal View History

2026-03-19 16:37:57 +08:00
package starlog
import "testing"
func attrsEqual(a []Attr, b []Attr) bool {
if len(a) != len(b) {
return false
}
for idx := range a {
if a[idx] != b[idx] {
return false
}
}
return true
}
func TestGetKeywordPresetMobaLite(t *testing.T) {
preset := GetKeywordPreset(KeywordPresetMobaLite)
if len(preset) == 0 {
t.Fatalf("moba lite preset should not be empty")
}
if _, ok := preset["error"]; !ok {
t.Fatalf("moba lite preset should include error")
}
if _, ok := preset["true"]; !ok {
t.Fatalf("moba lite preset should include true")
}
if _, ok := preset["ERROR"]; !ok {
t.Fatalf("moba lite preset should include ERROR variant")
}
preset["__mutated__"] = []Attr{FgBlue}
latest := GetKeywordPreset(KeywordPresetMobaLite)
if _, ok := latest["__mutated__"]; ok {
t.Fatalf("GetKeywordPreset should return a cloned map")
}
}
func TestApplyKeywordPreset(t *testing.T) {
logger := NewStarlog(nil)
logger.SetKeywordColor("custom", []Attr{FgBlue})
logger.ApplyKeywordPreset(KeywordPresetMobaLite)
colors := logger.GetKeywordColors()
if _, ok := colors["custom"]; ok {
t.Fatalf("ApplyKeywordPreset should replace existing keyword map")
}
if _, ok := colors["error"]; !ok {
t.Fatalf("ApplyKeywordPreset should include preset keywords")
}
}
func TestMergeKeywordPreset(t *testing.T) {
logger := NewStarlog(nil)
logger.SetKeywordColor("custom", []Attr{FgCyan})
logger.SetKeywordColor("error", []Attr{FgBlue})
logger.MergeKeywordPreset(KeywordPresetMobaLite)
colors := logger.GetKeywordColors()
if _, ok := colors["true"]; !ok {
t.Fatalf("MergeKeywordPreset should include preset keywords")
}
if _, ok := colors["custom"]; !ok {
t.Fatalf("MergeKeywordPreset should keep existing custom keyword")
}
got := colors["error"]
want := []Attr{FgBlue}
if !attrsEqual(got, want) {
t.Fatalf("existing keyword color should override preset, got %v", got)
}
}
func TestKeywordPresetUnknownNoOp(t *testing.T) {
logger := NewStarlog(nil)
logger.SetKeywordColor("keep", []Attr{FgGreen})
logger.ApplyKeywordPreset(KeywordPreset("unknown"))
afterApply := logger.GetKeywordColors()
if _, ok := afterApply["keep"]; !ok {
t.Fatalf("ApplyKeywordPreset unknown preset should not change map")
}
logger.MergeKeywordPreset(KeywordPreset("unknown"))
afterMerge := logger.GetKeywordColors()
if _, ok := afterMerge["keep"]; !ok {
t.Fatalf("MergeKeywordPreset unknown preset should not change map")
}
}