HERMES-GIELIE/tests/test_cron_script_job_ui.py

73 lines
2.7 KiB
Python
Raw Permalink Normal View History

"""Static coverage for script (no_agent) cron jobs in Tasks UI."""
from __future__ import annotations
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
PANELS_JS = (ROOT / "static" / "panels.js").read_text(encoding="utf-8")
STYLE_CSS = (ROOT / "static" / "style.css").read_text(encoding="utf-8")
I18N_JS = (ROOT / "static" / "i18n.js").read_text(encoding="utf-8")
def test_cron_script_job_helpers_exist():
assert "function _isCronScriptJob(job)" in PANELS_JS
assert "function _cronModeLabel(job)" in PANELS_JS
assert "function _cronOutputTitle(job)" in PANELS_JS
assert "function _cronScriptJobBannerHtml()" in PANELS_JS
assert "function _cronScriptCardHtml(job)" in PANELS_JS
assert "function _cronAgentPromptCardHtml(job)" in PANELS_JS
def test_cron_detail_branches_on_no_agent():
assert "const isNoAgent = _isCronScriptJob(job)" in PANELS_JS
assert "isNoAgent ? _cronScriptCardHtml(job) : _cronAgentPromptCardHtml(job)" in PANELS_JS
assert "isNoAgent ? _cronScriptJobBannerHtml() : ''" in PANELS_JS
assert 'class="detail-script"' in PANELS_JS
assert 'class="detail-alert cron-script-job-banner"' in PANELS_JS
assert "cron-mode-badge ${isNoAgent ? 'script' : 'agent'}" in PANELS_JS
def test_cron_list_shows_script_badge():
assert "cron-script-badge" in PANELS_JS
assert "cron_script_badge_title" in PANELS_JS
def test_cron_form_hides_prompt_for_script_jobs():
assert "const isNoAgent = !!no_agent" in PANELS_JS
assert "const promptBlock = isNoAgent ? '' :" in PANELS_JS
assert "const scriptBlock = isNoAgent ?" in PANELS_JS
assert 'id="cronFormScript"' in PANELS_JS
assert "if(!isNoAgent && !prompt)" in PANELS_JS
def test_cron_runs_skip_usage_strip_for_script_jobs():
assert "const isScriptJob = _isCronScriptJob(_currentCronDetail)" in PANELS_JS
assert "const usageStrip = isScriptJob ? '' : _formatCronRunUsageStrip(run.usage)" in PANELS_JS
def test_cron_script_job_styles_exist():
assert ".cron-script-badge" in STYLE_CSS
assert ".cron-script-job-banner" in STYLE_CSS
assert ".detail-script{" in STYLE_CSS
assert ".detail-badge.cron-mode-badge.script" in STYLE_CSS
assert ".detail-badge.cron-mode-badge.agent" in STYLE_CSS
def test_cron_script_job_i18n_keys_exist_in_every_locale():
locale_count = I18N_JS.count("cron_last_output:")
assert locale_count >= 9
for key in (
"cron_mode_agent",
"cron_mode_script",
"cron_mode_label",
"cron_script_job_banner",
"cron_script_card_title",
"cron_script_output",
"cron_script_path_label",
"cron_script_path_hint",
"cron_script_badge_title",
"cron_workdir_label",
):
assert I18N_JS.count(f"{key}:") >= locale_count, key