from pathlib import Path

from psx_signal.data.reference_data import read_constituents, read_corporate_actions


def test_reference_imports_normalize_symbols_and_preserve_effective_dates(tmp_path: Path) -> None:
    constituents = tmp_path / "constituents.csv"
    constituents.write_text(
        "effective_date,symbol,index,source_reference\n2026-04-01, sys ,kse100,notice-1\n"
    )
    actions = tmp_path / "actions.csv"
    actions.write_text(
        "symbol,action_date,action_type,ratio,cash_amount,source,source_reference\n"
        " sys ,2026-05-01,CASH_DIVIDEND,,5,PSX,notice-2\n"
    )
    membership = read_constituents(constituents)
    corporate = read_corporate_actions(actions)
    assert membership.iloc[0]["symbol"] == "SYS"
    assert membership.iloc[0]["index"] == "KSE100"
    assert str(membership.iloc[0]["effective_date"].date()) == "2026-04-01"
    assert corporate.iloc[0]["cash_amount"] == 5
