92 lines
2.4 KiB
Go
92 lines
2.4 KiB
Go
|
|
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")
|
||
|
|
}
|
||
|
|
}
|