File size: 1,450 Bytes
95e7bb1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]


def test_new_build_clears_run_scoped_pi_model_warning():
    app = (ROOT / "web" / "static" / "app.js").read_text(encoding="utf-8")
    set_active = app.split("function setActiveRun", 1)[1].split("function startPolling", 1)[0]
    assert "resetRunDetails()" in set_active
    assert "if(state.poll){clearInterval(state.poll);state.poll=null}" in set_active


def test_progress_poll_recomputes_blockers_for_current_run():
    app = (ROOT / "web" / "static" / "app.js").read_text(encoding="utf-8")
    refresh = app.split("function refreshProgress", 1)[1].split("function numberFromEvents", 1)[0]
    assert "renderBlockers(p)" in refresh
    assert "renderAgentRecovery(p)" in refresh


def test_start_polling_clears_stale_blocker_warning_when_switching_runs():
    app = (ROOT / "web" / "static" / "app.js").read_text(encoding="utf-8")
    start = app.split("function startPolling", 1)[1].split("async function bootstrapRunRecovery", 1)[0]
    assert "const blockers=$('selectedBlockers')" in start
    assert "blockers.hidden=true" in start


def test_render_blockers_ignores_stale_run_detail():
    runs = (ROOT / "web" / "static" / "runs.js").read_text(encoding="utf-8")
    fn = runs.split("function renderBlockers", 1)[1].split("function renderRunDetail", 1)[0]
    assert "detailRunId" in fn
    assert "detailRunId!==state.runId" in fn
    assert "root.hidden=true" in fn