Files
hockey_new/tests/test_build71_penalty_side_identifiers.py

53 lines
2.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")
MAPPING = (ROOT / "hockey_data/mapping_context.py").read_text(encoding="utf-8")
SERVICE = (ROOT / "hockey_data/service.py").read_text(encoding="utf-8")
CSS = (ROOT / "ui_builder/static/styles.css").read_text(encoding="utf-8")
def test_player_payload_exposes_database_id_without_replacing_external_id():
assert '"id": player.external_id' in SERVICE
assert '"external_id": player.external_id' in SERVICE
assert '"db_id": player.id' in SERVICE
def test_mapping_has_independent_home_and_away_penalty_identifiers():
for key in (
"selected_home_penalty_id",
"selected_home_penalty_player_id",
"selected_home_penalty_player_db_id",
"selected_home_penalty_team_penalty",
"selected_away_penalty_id",
"selected_away_penalty_player_id",
"selected_away_penalty_player_db_id",
"selected_away_penalty_team_penalty",
"selected_penalty_player_db_id",
"selected_penalty_team_penalty",
):
assert f'"key": "{key}"' in MAPPING
def test_penalty_preview_writes_side_specific_context_and_team_flag():
for key in (
"selected_home_penalty_id",
"selected_home_penalty_player_db_id",
"selected_home_penalty_team_penalty",
"selected_away_penalty_id",
"selected_away_penalty_player_db_id",
"selected_away_penalty_team_penalty",
):
assert f"{key}:" in JS
assert 'selected_penalty_team_penalty: detail.team_penalty ? "1" : "0"' in JS
assert 'selected_penalty_player_db_id: detail.player_db_id' in JS
def test_preview_selection_is_kept_per_side_and_visible():
assert 'selectedPreviewEventIds: { home: "", away: "" }' in JS
assert 'board.selectedPreviewEventIds[side] = event.id' in JS
assert 'hockeyPenaltyIsPreviewSelected(board, event)' in JS
assert 'Player DB ID' in JS
assert 'Командное</b>${event.teamPenalty ? "1" : "0"}' in JS
assert '.hpd-team-card-identifiers' in CSS