"""Tests for pure helpers in src.models.""" from src.models import language_folder_name, sanitize_folder_name class TestSanitizeFolderName: def test_plain_name_unchanged(self) -> None: assert sanitize_folder_name("Fallout 2") == "Fallout 2" def test_colon_becomes_dash(self) -> None: assert sanitize_folder_name("Baldur's Gate: Dark Alliance") == "Baldur's Gate - Dark Alliance" def test_strips_trademark_symbols(self) -> None: assert sanitize_folder_name("Game™ Title®") == "Game Title" def test_removes_invalid_filesystem_chars(self) -> None: # ':' becomes ' - ' first, then <>"/\|?* are stripped. assert sanitize_folder_name('AC:D"E/F\\G|H?I*J') == "ABC - DEFGHIJ" def test_collapses_multiple_spaces(self) -> None: assert sanitize_folder_name("A B") == "A B" def test_collapses_adjacent_dashes_from_colons(self) -> None: assert sanitize_folder_name("A: : B") == "A - B" def test_strips_leading_trailing_dots_and_space(self) -> None: assert sanitize_folder_name(" .Title. ") == "Title" def test_idempotent(self) -> None: once = sanitize_folder_name("Witcher 3: Wild Hunt™") assert sanitize_folder_name(once) == once class TestLanguageFolderName: def test_known_code(self) -> None: assert language_folder_name("cs") == "Czech" def test_unknown_code_passthrough(self) -> None: assert language_folder_name("xx") == "xx"