"""Native access dialog remains usable before the real match loader takes focus.""" from pathlib import Path import os import shutil import subprocess import pytest ROOT = Path(__file__).resolve().parents[1] CASES = [ 'viewer_choice_is_interactive', 'operator_choice_waits_for_mapping', 'claim_failure_can_continue_viewing', 'escape_continues_as_viewer', 'stale_choice_cannot_open_previous_match', 'existing_controller_needs_no_new_choice', 'viewer_incomplete_rosters_can_continue', 'missing_access_toolbar_does_not_hang', 'coalesced_default_selection_still_waits_for_choice', ] @pytest.mark.parametrize('case', CASES) def test_match_access_loading(case): node = shutil.which('node') assert node, 'Node is required for the match-access browser regression' source = Path(os.environ.get('BUILD198_ACCESS_RUNTIME_ROOT', ROOT)) result = subprocess.run( [node, str(ROOT / 'tests/build198_match_access_loading.cjs'), case, str(source)], cwd=ROOT, capture_output=True, text=True, timeout=45, ) assert result.returncode == 0, result.stdout + result.stderr assert f'PASS access loading: {case}' in result.stdout, 'The browser scenario must finish every assertion'