package app import ( "strings" "testing" "time" "github.com/kamelion/ratatoskr-go/internal/opencode" ) func TestLiveProbe_Fmt(t *testing.T) { reg := opencode.NewLiveRegistry() p := &liveProbe{reg: reg} // Нет сессии — Probe должен вернуть ok=false. if _, ok := p.Probe(1); ok { t.Error("Probe без сессии вернул ok=true") } reg.Start(7, "dev") reg.Observe(7, opencode.LiveStep{Type: "text", Text: "анализирую код", At: time.Now()}) reg.Observe(7, opencode.LiveStep{Type: "tool", At: time.Now()}) reg.Observe(7, opencode.LiveStep{Type: "text", Text: "пишу фичу по задаче номер триста семь", At: time.Now()}) desc, ok := p.Probe(7) if !ok { t.Fatal("Probe с сессией вернул ok=false") } if !strings.Contains(desc, "dev") { t.Errorf("описание не содержит агента: %q", desc) } if !strings.Contains(desc, "пишу фичу") { t.Errorf("описание не содержит последний text-шаг: %q", desc) } // text-шаги: оба, tools пропущен if n := strings.Count(desc, "▸"); n != 2 { t.Errorf("ожидал 2 text-шага (▸), вижу %d: %q", n, desc) } }