File size: 1,615 Bytes
6922a9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
da65740
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
34
35
36
37
from pathlib import Path


def test_current_step_uses_stabilized_timeline_not_view_header():
    js = Path("web/static/progress.js").read_text(encoding="utf-8")
    render = js.split("function renderRunViewModel", 1)[1].split("function renderProgress", 1)[0]
    assert "const stable=stabilizeProgressPayload(p,view)" in render
    assert "setText('currentStep',stable.currentStepLabel" in render
    assert "header.current_phase_label" not in render
    assert "animateProgressBar(progress,runStatus,stable.currentStep)" in render


def test_events_and_last_event_use_same_stable_event_source():
    js = Path("web/static/progress.js").read_text(encoding="utf-8")
    render = js.split("function renderRunViewModel", 1)[1].split("function renderProgress", 1)[0]
    assert "const stableEvents=mergeStableEvents" in render
    assert "const latestEvent=stableEvents[stableEvents.length-1]" in render
    assert "renderActivityFeed(stableEvents)" in render
    assert "view.activity||[]" not in render


def test_stabilized_payload_returns_current_step_label():
    js = Path("web/static/progress.js").read_text(encoding="utf-8")
    assert "function activeTimelineItem" in js
    assert "currentStepLabel:activeItem?.label" in js
    assert "progressStability.currentStep" in js


def test_timeline_centering_css_escape_is_safe():
    js = Path("web/static/progress.js").read_text(encoding="utf-8")
    assert "typeof CSS!=='undefined'" in js
    assert "const safeStep=" in js


def test_app_version_v69():
    assert '"version": "v70-progress-resume-events-latency"' in Path("app.py").read_text(encoding="utf-8")