35 lines
1.7 KiB
JSON
35 lines
1.7 KiB
JSON
{
|
|
"name": "sidebar_survives_linefeed_scroll",
|
|
"cols": 120,
|
|
"rows": 40,
|
|
"scripts": [
|
|
{
|
|
"name": "linefeed-scroll",
|
|
"body": "#!/bin/sh\n# Plain LF at the bottom of the child viewport scrolls the host's\n# DECSTBM region. Because that region spans every column, enough LFs\n# drag the sidebar border and section labels out of the visible region\n# unless patterm invalidates and repaints the sidebar cache.\ni=0\nwhile [ $i -lt 12 ]; do\n printf 'warmup %02d\\n' \"$i\"\n i=$((i + 1))\n sleep 0.05\ndone\nprintf 'LINEFEED READY\\n'\nIFS= read -r _\nprintf '\\033[1;36r'\nprintf '\\033[36;1H'\ni=0\nwhile [ $i -lt 45 ]; do\n printf 'scroll line %02d\\n' \"$i\"\n i=$((i + 1))\ndone\nprintf 'LINEFEED DONE\\n'\nsleep 5\n"
|
|
}
|
|
],
|
|
"steps": [
|
|
{
|
|
"type": "mcp_call",
|
|
"method": "spawn_process",
|
|
"params": { "kind": "command", "argv": ["linefeed-scroll"], "name": "linefeed-scroll" }
|
|
},
|
|
{ "type": "wait_text", "contains": "LINEFEED READY", "timeout_ms": 5000 },
|
|
{ "type": "wait_stable", "timeout_ms": 2000 },
|
|
{ "type": "mark_raw", "save_as": "before_scroll" },
|
|
{ "type": "send_chord", "chord": "enter" },
|
|
{ "type": "wait_text", "contains": "LINEFEED DONE", "timeout_ms": 5000 },
|
|
{ "type": "wait_stable", "timeout_ms": 2000 },
|
|
{
|
|
"type": "assert_raw_since_regex",
|
|
"from": "before_scroll",
|
|
"regex": "LINEFEED DONE",
|
|
"timeout_ms": 2000
|
|
},
|
|
{ "type": "assert_contains", "contains": "Processes" },
|
|
{ "type": "assert_contains", "contains": "Agent Tree" },
|
|
{ "type": "assert_contains", "contains": "Scratchpads" },
|
|
{ "type": "assert_contains", "contains": "● linefeed-scroll" }
|
|
]
|
|
}
|