"""Porównanie systemów domów naraz (PRE-05). JS-a tu nie ma — sprawdzamy strukturalnie: formularz pozwala zaznaczyć kilka systemów, klient przekazuje je do logiki, a szablon pokazuje kuspy obok siebie. """ import pathlib APP = pathlib.Path(__file__).resolve().parents[1] / "app" CHART = (APP / "templates" / "chart.html").read_text(encoding="utf-8") MAIN = (APP / "main.py").read_text(encoding="utf-8") CLIENT = (APP / "clients" / "logic_client.py").read_text(encoding="utf-8") def test_form_lets_you_pick_extra_systems(): """Checkboxy dla trzech systemów — wielokrotny wybór (name powtórzony).""" for val in ("whole_sign", "equal", "porphyry"): assert f'name="house_systems" value="{val}"' in CHART, f"brak checkboxa {val}" def test_handler_accepts_and_passes_house_systems(): assert "house_systems: list[str] = Form([])" in MAIN assert "house_systems=house_systems" in MAIN # przekazane do logiki def test_client_forwards_house_systems_to_logic(): assert '"house_systems": house_systems' in CLIENT def test_comparison_table_renders_only_for_multiple_systems(): """Bez dodatkowych systemów nie pokazujemy pustej tabeli porównania.""" assert "result.house_systems | length > 1" in CHART assert "Porównanie systemów domów" in CHART def test_comparison_table_shows_cusp_per_system(): """Tabela iteruje po systemach i po 12 domach — kusp w każdej komórce.""" assert "for hs in result.house_systems" in CHART assert "hs.cusps[i].in_sign" in CHART def test_checkbox_state_survives_submit(): """Zaznaczone systemy zostają zaznaczone po przeliczeniu.""" assert "in chosen" in CHART and "form.house_systems" in CHART