"""Tests for csv_io.load_urls."""

from __future__ import annotations

from pathlib import Path

from gsc.csv_io import load_urls


def _write(tmp_path: Path, content: str) -> Path:
    p = tmp_path / "urls.csv"
    p.write_text(content, encoding="utf-8")
    return p


def test_skips_header_and_non_http(tmp_path: Path) -> None:
    csv_path = _write(
        tmp_path,
        "url\nhttps://example.com/a\nnot-a-url\nftp://example.com/x\nhttp://example.com/b\n",
    )
    assert load_urls(csv_path) == ["https://example.com/a", "http://example.com/b"]


def test_dedupes_preserving_order(tmp_path: Path) -> None:
    csv_path = _write(
        tmp_path,
        "url\n"
        "https://example.com/a\n"
        "https://example.com/b\n"
        "https://example.com/a\n"
        "  \n"
        "https://example.com/c\n",
    )
    assert load_urls(csv_path) == [
        "https://example.com/a",
        "https://example.com/b",
        "https://example.com/c",
    ]


def test_empty_file_returns_empty(tmp_path: Path) -> None:
    csv_path = _write(tmp_path, "")
    assert load_urls(csv_path) == []
