31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
JS = (ROOT / "ui_builder" / "static" / "app.js").read_text(encoding="utf-8")
|
|
APP = (ROOT / "app.py").read_text(encoding="utf-8")
|
|
|
|
|
|
def test_build_version_bumped():
|
|
assert 'BUILD_VERSION = "2026.08.19.22"' in APP
|
|
|
|
|
|
def test_sequence_targets_match_active_overlay_input():
|
|
assert "function shortcutSequenceOverlayTargets" in JS
|
|
assert "function sequenceMatchesRuntimeOverlay" in JS
|
|
assert "normalizeRuntimeVmixInputRef(current.input) === normalizeRuntimeVmixInputRef(target.input)" in JS
|
|
|
|
|
|
def test_normal_and_scoreboard_alternate_inputs_are_tracked():
|
|
assert "addTarget(parsed.layer, templateSequenceValue(step.input, context))" in JS
|
|
assert "step.scoreboard_alternate_input" in JS
|
|
|
|
|
|
def test_onair_prefers_runtime_target_match():
|
|
"""Match the complete current helper rather than a fixed-length source slice."""
|
|
from tests.ui_contract_support import ui_contract
|
|
ui_contract("onair")
|
|
|
|
|
|
def test_target_detection_respects_step_conditions():
|
|
assert "sequenceConditionMatches(step.condition, context, step.condition_value)" in JS
|