33 lines
946 B
Go
33 lines
946 B
Go
package internal
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
// TestSkillsListLinesViewportByLines 验证技能列表视口按行数(含描述行)收口,
|
|
// 返回行数不超过 listH,避免变长行撑爆面板
|
|
func TestSkillsListLinesViewportByLines(t *testing.T) {
|
|
m := NewModel()
|
|
m.Skills.Loaded = true
|
|
for i := 0; i < 3; i++ {
|
|
m.Skills.Skills = append(m.Skills.Skills, &SkillInfo{
|
|
Name: "skill-" + strings.Repeat("x", i),
|
|
Description: "描述行 " + string(rune('A'+i)),
|
|
})
|
|
}
|
|
m.Skills.SkillCur = 0
|
|
m.Skills.FocusPanel = 0
|
|
|
|
listH := 3 // 足够只显示部分(总共 6 行:3 技能 × 2 行)
|
|
lines := m.skillsListLines(30, listH)
|
|
if len(lines) > listH {
|
|
t.Fatalf("skillsListLines 应返回 ≤ %d 行, got %d", listH, len(lines))
|
|
}
|
|
|
|
// 光标在首个技能时,视口应从头开始且光标行可见
|
|
if !strings.Contains(lines[0], "▸") {
|
|
t.Fatalf("首行应含光标标记, got %q", lines[0])
|
|
}
|
|
}
|