"""Connector ownership and execution-plane contract tests."""

from src.domain.connectors.catalog import CONNECTORS
from src.domain.connectors.runtime_surfaces import catalog_invariants


def test_current_connector_catalog_is_customer_byok_only() -> None:
    """P2HS-owned infrastructure must stay on native platform ports."""
    assert CONNECTORS
    assert all(c.ownership_mode == "customer_byok" for c in CONNECTORS.values())
    assert all(c.execution_domain == "C" for c in CONNECTORS.values())


def test_connector_ownership_metadata_is_valid() -> None:
    allowed_ownership = {"customer_byok", "p2hs_owned", "both"}
    allowed_domains = {"P", "C", "B"}
    for connector in CONNECTORS.values():
        assert connector.ownership_mode in allowed_ownership, connector.key
        assert connector.execution_domain in allowed_domains, connector.key
        if connector.ownership_mode == "p2hs_owned":
            assert connector.execution_domain == "P", connector.key


def test_existing_catalog_invariants_remain_clean_except_known_payment_legacy_rows() -> None:
    issues = catalog_invariants()
    assert all("invoke verb must not live in CATALOG_PRIMITIVES" in issue for issue in issues)
