191 build - поправлены старые падения, проверены 3 матча и 6 агентов одновременных

This commit is contained in:
2026-10-21 13:41:47 +03:00
parent 787f880c0e
commit bf5e0d3101
52 changed files with 4024 additions and 730 deletions

View File

@@ -1,4 +1,5 @@
from __future__ import annotations
from tests.timer_contract_support import run_timer_contract, assert_current_build_contract
from pathlib import Path
@@ -105,16 +106,9 @@ def test_shortcut_editor_layout_fixes_add_step_buttons_and_fullscreen_modal() ->
def test_hockey_timer_shortcut_supports_native_countdown_and_legacy_text_mirror() -> None:
app_js = Path("ui_builder/static/app.js").read_text(encoding="utf-8")
assert 'Function: "StopCountdown"' in app_js
assert 'Function: "SuspendCountdown"' not in app_js
assert 'Function: "StopCountdown"' in app_js
assert 'hockey_timer_command' in app_js
assert 'game_vmix_mode' in app_js
assert 'game_vmix_selected_name' in app_js
assert 'vmixTimerMirrors' in app_js
assert 'Function: "SetText"' in app_js
assert 'combo: "Space"' in app_js
"""Current native timer contract, executed against production functions."""
run_timer_contract('no_legacy_text_packets')
run_timer_contract('target_scope')
def test_global_shortcuts_capture_keys_before_focused_runtime_controls() -> None:
@@ -197,10 +191,8 @@ def test_hockey_countdown_uses_selected_name_for_game_and_penalty_targets() -> N
def test_overlay_group_repeat_uses_transition_out_not_all_off():
js = Path("ui_builder/static/app.js").read_text(encoding="utf-8")
assert 'Function: "OverlayInputAllOff"' not in js
for layer in range(1, 5):
assert f'Function: "OverlayInput{layer}Out"' in js
from tests.ui_contract_support import ui_contract
ui_contract("overlay_group")
def test_build90_migrates_old_text_timer_transport_to_native_countdown(tmp_path: Path) -> None:
@@ -250,13 +242,5 @@ def test_build90_keeps_explicit_legacy_text_mode_after_v22(tmp_path: Path) -> No
def test_build90_native_countdown_avoids_per_second_transport() -> None:
app_js = Path("ui_builder/static/app.js").read_text(encoding="utf-8")
assert 'game_vmix_mode !== "countdown"' in app_js
assert 'const countdownMode = step.penalty_vmix_mode === "countdown"' in app_js
assert 'Function: "StopCountdown"' in app_js
assert 'Function: "SuspendCountdown"' not in app_js
assert 'Function: "StopCountdown"' in app_js
assert 'signal: controller.signal' in app_js
assert 'vmixCommandQueue: Promise.resolve()' in app_js
# Per-second pushes are restricted to the legacy Text mirror map.
assert 'eventName === "timer_tick" && state.vmixTimerMirrors.has(component.action_id)' in app_js
"""Current native timer contract, executed against production functions."""
run_timer_contract('no_tick_transport')