Files
hermes-webui/tests/test_session_discoverability_invariants.py
T
2026-05-27 23:42:24 +02:00

63 lines
1.8 KiB
Python

"""Regression coverage for session sidebar discoverability invariants."""
def test_messageful_hidden_snapshot_is_preserved_when_no_visible_representative():
from api.models import _preserve_messageful_sidebar_discoverability
hidden_snapshot = {
"session_id": "root_snapshot",
"title": "Long conversation snapshot",
"message_count": 42,
"pre_compression_snapshot": True,
}
result = _preserve_messageful_sidebar_discoverability(
candidates=[hidden_snapshot],
visible=[],
)
assert [row["session_id"] for row in result] == ["root_snapshot"]
assert result[0]["discoverability_warning"] == "rescued_messageful_hidden_session"
def test_messageful_hidden_snapshot_stays_hidden_when_continuation_is_visible():
from api.models import _preserve_messageful_sidebar_discoverability
hidden_snapshot = {
"session_id": "root_snapshot",
"title": "Archived snapshot",
"message_count": 42,
"pre_compression_snapshot": True,
}
visible_tip = {
"session_id": "tip_session",
"parent_session_id": "root_snapshot",
"title": "Visible continuation",
"message_count": 50,
}
result = _preserve_messageful_sidebar_discoverability(
candidates=[hidden_snapshot, visible_tip],
visible=[visible_tip],
)
assert [row["session_id"] for row in result] == ["tip_session"]
def test_intentional_background_sessions_are_not_rescued_into_sidebar():
from api.models import _preserve_messageful_sidebar_discoverability
cron_row = {
"session_id": "cron_digest_001",
"title": "Digest",
"source_tag": "cron",
"message_count": 12,
}
result = _preserve_messageful_sidebar_discoverability(
candidates=[cron_row],
visible=[],
)
assert result == []