from __future__ import annotations

from jarvis_finance.api.main import build_local_origins


def test_build_local_origins_includes_defaults(monkeypatch):
    monkeypatch.delenv("JARVIS_FINANCE_CORS_ORIGINS", raising=False)

    origins = build_local_origins()

    assert "http://localhost:5173" in origins
    assert "http://127.0.0.1:5173" in origins
    assert "http://100.85.29.67:5173" in origins


def test_build_local_origins_accepts_runtime_tailnet_ports(monkeypatch):
    monkeypatch.setenv(
        "JARVIS_FINANCE_CORS_ORIGINS",
        "http://100.101.173.25:40865, http://100.101.173.25:5175",
    )

    origins = build_local_origins()

    assert "http://100.101.173.25:40865" in origins
    assert "http://100.101.173.25:5175" in origins


def test_build_local_origins_ignores_invalid_origins(monkeypatch):
    monkeypatch.setenv(
        "JARVIS_FINANCE_CORS_ORIGINS",
        "https://example.com, file:///tmp/x, http://100.101.173.25:40865, not-a-url",
    )

    origins = build_local_origins()

    assert "http://100.101.173.25:40865" in origins
    assert "https://example.com" not in origins
    assert "file:///tmp/x" not in origins
    assert "not-a-url" not in origins
