Files
hermes-webui/tests/test_issue3019_cron_project_sessions.py
nesquena-hermes 2c7b530071
Some checks failed
Release & Docker / release (push) Has been cancelled
Release v0.51.269 — Release IK (stage-b2 — sidebar perf + search scope + Windows ctl) (#3672)
* perf(ui): single-pass sidebar session row partitioning (#3658)

Co-authored-by: Pamnard <pamnard@users.noreply.github.com>

* fix(search): scope session search to active profile (#3646)

Co-authored-by: hinotoi-agent <paperlantern.agent@gmail.com>

* fix(ctl): tree-kill ctl.sh stop on Windows (#3670)

Co-authored-by: Rod Boev <rod.boev@gmail.com>

* docs(changelog): v0.51.269 — Release IK (stage-b2)

---------

Co-authored-by: nesquena-hermes <[email protected]>
Co-authored-by: Pamnard <pamnard@users.noreply.github.com>
Co-authored-by: hinotoi-agent <paperlantern.agent@gmail.com>
Co-authored-by: Rod Boev <rod.boev@gmail.com>
2026-06-05 10:53:45 -07:00

96 lines
3.1 KiB
Python

"""Regression tests for #3019 cron sessions under the Cron Jobs project."""
def test_project_assigned_cron_rows_are_returned_but_default_hidden():
from api.models import _include_project_hidden_background_sidebar_sessions
visible = [
{"session_id": "webui-1", "title": "Normal", "message_count": 1, "project_id": None},
]
candidates = visible + [
{
"session_id": "cron_visible",
"source_tag": "cron",
"title": "Cron output",
"message_count": 2,
"project_id": "cron-project",
},
{
"session_id": "cron_unassigned",
"source_tag": "cron",
"title": "Cron output",
"message_count": 2,
"project_id": None,
},
{
"session_id": "cron_empty",
"source_tag": "cron",
"title": "Cron output",
"message_count": 0,
"project_id": "cron-project",
},
]
rows = _include_project_hidden_background_sidebar_sessions(candidates, visible)
by_id = {row["session_id"]: row for row in rows}
assert set(by_id) == {"webui-1", "cron_visible"}
assert by_id["cron_visible"]["default_hidden"] is True
def test_agent_side_cron_rows_keep_project_chip_visibility():
from api.routes import _dedupe_cli_sidebar_sessions_for_api
represented_webui_ids = {"webui-1"}
cli_rows = [
{
"session_id": "cli-normal",
"source_tag": "cli",
"title": "Manual deployment notes",
"message_count": 1,
"updated_at": 5,
},
{
"session_id": "cron-agent-project",
"source_tag": "cron",
"title": "Cron agent run",
"message_count": 3,
"project_id": "cron-project",
"updated_at": 4,
},
{
"session_id": "cron-agent-unassigned",
"source_tag": "cron",
"title": "Cron hidden",
"message_count": 3,
"updated_at": 3,
},
{
"session_id": "cron-agent-empty",
"source_tag": "cron",
"title": "Cron empty",
"message_count": 0,
"project_id": "cron-project",
"updated_at": 2,
},
{
"session_id": "webui-1",
"source_tag": "cli",
"title": "Duplicate imported copy",
"message_count": 1,
},
]
rows = _dedupe_cli_sidebar_sessions_for_api(cli_rows, represented_webui_ids)
by_id = {row["session_id"]: row for row in rows}
assert set(by_id) == {"cli-normal", "cron-agent-project"}
assert by_id["cron-agent-project"]["default_hidden"] is True
def test_session_list_project_filter_can_reveal_default_hidden_cron_rows():
src = ( __import__("pathlib").Path(__file__).parent.parent / "static" / "sessions.js").read_text(encoding="utf-8")
assert "function _partitionSidebarSessionRows(allMatched, activeSidForSidebar)" in src
assert "if(s.default_hidden&&!(_activeProject&&_activeProject!==NO_PROJECT_FILTER&&s.project_id===_activeProject)) continue;" in src