Files
hermes-webui/tests/test_issue2386_localstorage_quota.py
2026-05-16 07:31:44 -07:00

35 lines
1.2 KiB
Python

from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
def _script(path):
return (ROOT / path).read_text()
def _assert_storage_setitem_guarded(src, needle):
matches = [line.strip() for line in src.splitlines() if needle in line]
assert matches, f"expected at least one {needle} write"
for line in matches:
assert line.startswith("try{localStorage.setItem("), (
f"localStorage quota errors must not escape from {needle} writes: {line}"
)
assert "catch(_)" in line or "catch(e)" in line or "catch{}" in line
def test_active_session_localstorage_writes_ignore_quota_errors():
"""Session persistence writes are best-effort when the browser quota is full (#2386)."""
for path in ["static/sessions.js", "static/commands.js", "static/messages.js"]:
_assert_storage_setitem_guarded(
_script(path),
"localStorage.setItem('hermes-webui-session'",
)
def test_workspace_panel_localstorage_write_ignores_quota_errors():
"""Workspace panel state should not break UI toggles if localStorage throws (#2386)."""
_assert_storage_setitem_guarded(
_script("static/boot.js"),
"localStorage.setItem('hermes-webui-workspace-panel'",
)