from __future__ import annotations from pathlib import Path def test_review_interface_marks_keyboard_modal_and_responsive_state_hooks() -> None: web_root = Path(__file__).parents[2] / "src" / "game_data_capture" / "web" template = (web_root / "templates" / "index.html").read_text(encoding="utf-8") script = (web_root / "static" / "review.js").read_text(encoding="utf-8") stylesheet = (web_root / "static" / "review.css").read_text(encoding="utf-8") assert 'aria-live="polite"' in template assert ' None: script = ( Path(__file__).parents[2] / "src" / "game_data_capture" / "web" / "static" / "review.js" ).read_text(encoding="utf-8") assert 'headers.set("Origin"' not in script assert "Origin:" not in script assert 'const bootstrap = await request("/api/bootstrap"' in script assert 'const session = await request("/api/session")' in script assert script.index('"/api/bootstrap"') < script.index('"/api/session"') assert "if (!validSession(session))" in script assert "family, false, () =>" in script assert "view, false, renderDependentFields" in script assert "if (!classification) { renderViews(); renderDependentFields(); return; }" in script assert "function routeForAction(action)" in script assert '(action === "reject" || action === "delete") && activeCapture' in script assert "const routes =" not in script assert 'document.querySelectorAll("#label-form input")' in script assert "input.disabled = pending || locked || !activeCapture" in script assert 'document.querySelectorAll("#capture-list button")' in script assert "button.disabled = pending || locked;" in script assert "armed === true" in script assert "armed !== true" in script assert "function acceptMutationCsrf(payload)" in script assert "if (!payload || !acceptMutationCsrf(payload))" in script assert 'retained ? "RETAINED"' in script assert "function setCheckedMembers(name, values)" in script assert "input.checked = selectedValues.has(input.value);" in script assert 'setCheckedMembers("record_type", classification.record_types || []);' in script assert 'forEach((record) => setChecked("record_type", record))' not in script assert ( "async function refreshCaptures({ announce = true, fallbackFocus = null } = {})" in script ) assert "async function selectCapture(captureId, { announce = true } = {})" in script assert 'if (announce) notice("success", "QUEUE REFRESHED"' in script assert 'if (announce) notice("success", "CAPTURE READY"' in script assert "refreshCaptures({ announce: false })" in script assert "selectCapture(captureId, { announce: false })" in script assert script.index("selectCapture(captureId, { announce: false })") < script.index( 'notice("success", "LABEL SAVED"' ) assert 'if (!activeCapture) els.reviewState.textContent = "READY";' in script assert '"Capture is ARMED. Stop Session requires explicit confirmation."' in script assert '"Capture is DISARMED. Start Session requires explicit confirmation."' in script assert 'action === "start" ? els.stop' in script assert 'action === "stop" ? els.start' in script assert 'action === "delete" ? els.refresh' in script assert "function focusIfAvailable(control)" in script assert "focusIfAvailable(successFocus);" in script assert "async function confirmed(action, fallbackFocus)" in script assert "fallbackFocus?.focus();" in script assert "function clearActiveDetail()" in script assert 'if (action === "delete") clearActiveDetail();' in script assert "captures.some((capture) => capture.capture_id === captureId)" in script assert "refreshCaptures({ fallbackFocus: els.refresh })" in script assert "focusIfAvailable(els.save);" in script