defmodule MicrowavepropWeb.MapLiveTest do use MicrowavepropWeb.ConnCase, async: true import Phoenix.LiveViewTest describe "mount" do test "renders full-page map", %{conn: conn} do {:ok, _lv, html} = live(conn, ~p"/map") assert html =~ ~s(id="propagation-map") assert html =~ ~s(phx-hook="PropagationMap") end test "renders band dropdown with all bands", %{conn: conn} do {:ok, _lv, html} = live(conn, ~p"/map") assert html =~ "10 GHz" assert html =~ "24 GHz" assert html =~ "47 GHz" assert html =~ "75 GHz" assert html =~ "241 GHz" end test "defaults to 10 GHz selected", %{conn: conn} do {:ok, _lv, html} = live(conn, ~p"/map") assert html =~ ~s(class="active") end test "includes data-scores attribute", %{conn: conn} do {:ok, _lv, html} = live(conn, ~p"/map") assert html =~ "data-scores" end test "renders grid toggle", %{conn: conn} do {:ok, _lv, html} = live(conn, ~p"/map") assert html =~ "Grid squares" assert html =~ ~s(phx-click="toggle_grid") end test "renders scoring algorithm link", %{conn: conn} do {:ok, _lv, html} = live(conn, ~p"/map") assert html =~ "Scoring Algorithm" assert html =~ ~s(/algo) end test "renders submit QSO link", %{conn: conn} do {:ok, _lv, html} = live(conn, ~p"/map") assert html =~ "Submit a QSO" assert html =~ ~s(/submit) end end describe "select_band" do test "updates selected band on event", %{conn: conn} do {:ok, lv, _html} = live(conn, ~p"/map") html = render_click(lv, "select_band", %{"value" => 24_000}) assert html =~ "24 GHz" end end describe "toggle_grid" do test "toggles grid visibility", %{conn: conn} do {:ok, lv, html} = live(conn, ~p"/map") refute html =~ "checked" html = render_click(lv, "toggle_grid") assert html =~ "checked" html = render_click(lv, "toggle_grid") refute html =~ "checked" end end end