Files
sanspie 5eb1832907
ci-platforms / darwin amd64 smoke (push) Skipped
ci / build (amd64, linux, ubuntu-24.04) (push) Failing after 15m28s
ci / release (push) Skipped
ci-platforms / windows amd64 smoke (push) Skipped
ci-platforms / darwin arm64 smoke (push) Skipped
ci / checks (push) Successful in 7m47s
Complete Stage 12 for v0.12.0
2026-11-05 11:46:53 +03:00

38 lines
1.2 KiB
Go

package console
import (
"aego/core/log"
"strings"
"testing"
)
func TestSelectedRenderEntrySurvivesClearAndRingWrap(t *testing.T) {
s := NewSink(16)
lg := log.New(s)
lg.Log(log.Render, log.Error, "shader candidate failed", log.F("code", "SHD009"), log.F("file", "assets/postfx/cold"), log.F("line", 0), log.F("err", "GL33 link/layout: MAT004: postfx shader cannot draw sprite geometry"), log.F("asset", "45e397813812442d994a810000000001"))
selected := s.Snapshot(nil)[0]
m := selected.Message()
if m.Level != "ERROR" || m.Channel != "render" || m.Code != "SHD009" || m.Cause != "MAT004" || m.Path != "assets/postfx/cold" || m.Line != 0 || m.Asset == "" {
t.Fatalf("%+v", m)
}
p := New(s)
p.refresh()
p.selected, p.selectedID = 0, selected.ID
for n := 0; n < 32; n++ {
lg.Log(log.Game, log.Info, "another entry", log.F("n", n))
}
p.refresh()
if p.selected != -1 {
t.Fatal("selection moved to another entry")
}
s.Clear()
if !strings.Contains(selected.details(), "MAT004") || len(s.Snapshot(nil)) != 0 {
t.Fatal("lost selected snapshot after Clear")
}
for _, x := range s.ring {
if x.Text != "" {
t.Fatal("Clear retained text references")
}
}
}