Files
hermes-webui/tests/test_issue3869_thinking_dots.py
T
mo7al876anyandClaude Fable 5 5f0cc6c567 test: read static assets as utf-8 so locale/render tests run on Windows
34 test files read static/*.js via read_text()/open() without an encoding,
so Python's cp1252 default on Windows choked on non-Latin1 bytes and errored
at collection (Ubuntu CI defaults to utf-8, so it never saw this). Add
explicit encoding="utf-8" to those reads — purely mechanical, no assertion
changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 16:04:23 +03:00

44 lines
1.6 KiB
Python

from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
UI_JS = (REPO_ROOT / "static" / "ui.js").read_text(encoding="utf-8")
def _function_body(src: str, name: str) -> str:
marker = f"function {name}("
start = src.find(marker)
assert start != -1, f"{name} not found"
brace = src.find("{", start)
assert brace != -1, f"{name} body not found"
depth = 0
for idx in range(brace, len(src)):
ch = src[idx]
if ch == "{":
depth += 1
elif ch == "}":
depth -= 1
if depth == 0:
return src[brace + 1 : idx]
raise AssertionError(f"{name} body not closed")
def test_finalize_removes_dot_only_legacy_thinking_placeholder():
"""#3869: an empty legacy thinking row is only a spinner, not durable content."""
body = _function_body(UI_JS, "finalizeThinkingCard")
assert "const hasContent=!!row.querySelector('.thinking-card');" in body
assert "row.classList.contains('thinking-card-row')" not in body
assert "if(!hasContent && row.getAttribute('data-thinking-active')==='1'){" in body
assert "row.remove();" in body
def test_live_worklog_thinking_cards_are_preserved_on_finalize():
"""#3869 fix must not remove real Worklog Thinking Cards that contain text."""
body = _function_body(UI_JS, "finalizeThinkingCard")
assert "turn.querySelectorAll('.agent-activity-thinking[data-thinking-active=\"1\"]')" in body
assert "active.removeAttribute('data-thinking-active');" in body
assert "active.removeAttribute('data-live-thinking');" in body
assert "active.remove()" not in body