defmodule AprsmeWeb.MapLive.OverlayRenderingTest do use ExUnit.Case, async: true alias AprsmeWeb.MapLive.PacketUtils describe "overlay symbol rendering in map" do test "W5MRC-15 with D& symbol emits structured marker data" do # Create a test packet with overlay symbol D& packet = %{ id: 1, sender: "W5MRC-15", base_callsign: "W5MRC", ssid: "15", symbol_table_id: "D", symbol_code: "&", lat: 30.0, lon: -95.0, comment: "Test station", received_at: DateTime.utc_now(), data_type: "position" } # Process the packet through PacketUtils result = PacketUtils.build_packet_data(packet, true, "en-US") assert result["symbol_table_id"] == "D" assert result["symbol_code"] == "&" assert result["callsign"] == "W5MRC-15" refute Map.has_key?(result, "symbol_html") end test "N# green star overlay symbol generates correct HTML" do # Create a test packet with overlay symbol N# packet = %{ id: 2, sender: "TEST-1", base_callsign: "TEST", ssid: "1", symbol_table_id: "N", symbol_code: "#", lat: 35.0, lon: -100.0, comment: "Green star test", received_at: DateTime.utc_now(), data_type: "position" } # Process the packet result = PacketUtils.build_packet_data(packet, true, "en-US") assert result["symbol_table_id"] == "N" assert result["symbol_code"] == "#" assert result["callsign"] == "TEST-1" refute Map.has_key?(result, "symbol_html") end test "normal symbol /_ generates correct HTML without overlay" do # Create a test packet with normal symbol /_ packet = %{ id: 3, sender: "WEATHER-1", base_callsign: "WEATHER", ssid: "1", symbol_table_id: "/", symbol_code: "_", lat: 40.0, lon: -105.0, comment: "Weather station", received_at: DateTime.utc_now(), data_type: "weather" } # Process the packet result = PacketUtils.build_packet_data(packet, true, "en-US") assert result["symbol_table_id"] == "/" assert result["symbol_code"] == "_" assert result["callsign"] == "WEATHER-1" refute Map.has_key?(result, "symbol_html") end end end