"""Regression coverage for the Core catalog / Cloud action registry boundary."""

from src.domain.connectors.catalog import CONNECTORS


CLOUD_ACTIONS_NOT_PREVIOUSLY_DECLARED_BY_CORE = {
    "facebook.send_event",
    "google_ads.enhanced_conversion",
    "google_ads.track_conversion",
    "google_ads.track_event",
    "google_analytics.send_event",
    "microsoft_ads.track_conversion",
    "microsoft_ads.track_event",
    "snapchat.send_event",
    "tiktok.send_event",
    "x_ads.send_event",
}


def test_cloud_action_aliases_are_declared_in_core_catalog() -> None:
    core_actions = {action.slug for connector in CONNECTORS.values() for action in connector.actions}
    assert CLOUD_ACTIONS_NOT_PREVIOUSLY_DECLARED_BY_CORE <= core_actions


def test_connector_action_slugs_are_unique() -> None:
    slugs = [action.slug for connector in CONNECTORS.values() for action in connector.actions]
    assert len(slugs) == len(set(slugs))
