from pathlib import Path from linkki_poster.models import Language, LanguageAssets from linkki_poster.ordering import parse_order_input, prompt_language_order def test_parse_order_input_accepts_expected_formats() -> None: assert parse_order_input("12", 2) == [1, 2] assert parse_order_input("2 1", 2) == [2, 1] assert parse_order_input("1,2", 2) == [1, 2] def test_parse_order_input_rejects_invalid_orders() -> None: assert parse_order_input("11", 2) is None assert parse_order_input("13", 2) is None assert parse_order_input("1", 2) is None def test_prompt_language_order_accepts_empty_as_default(tmp_path: Path) -> None: fi = LanguageAssets(Language.FI, tmp_path / "fi.md", "fi", []) en = LanguageAssets(Language.EN, tmp_path / "en.md", "en", []) ordered = prompt_language_order([fi, en], input_fn=lambda _: "") assert [item.language for item in ordered] == [Language.FI, Language.EN]