Files
hockey_new/tests/test_build77_penalty_overlay_auto_in.py

29 lines
1.2 KiB
Python

from pathlib import Path
import subprocess
APP_JS = (Path(__file__).resolve().parents[1] / "ui_builder" / "static" / "app.js").read_text(encoding="utf-8")
def test_ready_penalty_opens_target_when_scoreboard_is_live():
root = Path(__file__).resolve().parents[1]
case = "zero_delay_scoreboard_live_only"
result = subprocess.run(
["node", str(root / "tests/build196_scoreboard_delay.cjs"), case],
cwd=root, capture_output=True, text=True, timeout=15,
)
assert result.returncode == 0, result.stdout + result.stderr
assert f"PASS scoreboard delay frontend: {case}" in result.stdout
def test_penalty_overlay_auto_in_does_not_retrigger_visible_target():
start = APP_JS.index("async function rebalanceVmixPenaltyTargets")
end = APP_JS.index("function finishActionMatchesSource", start)
snippet = APP_JS[start:end]
assert "previous?.visible === true && Boolean(previous?.input)" in snippet
assert "if (!targetWasVisible)" in snippet
def test_existing_team_state_sync_logic_is_untouched():
assert 'for (const key of ["home_delayed_penalty", "home_empty_net", "away_delayed_penalty", "away_empty_net"])' in APP_JS
assert "async function hockeySyncTeamStateOverlays" in APP_JS