"""Tests for user-facing IM channel connection configuration.""" from deerflow.config.channel_connections_config import ChannelConnectionsConfig def test_channel_connections_disabled_by_default(): config = ChannelConnectionsConfig() assert config.enabled is False assert config.slack.enabled is False assert config.telegram.enabled is False assert config.discord.enabled is False def test_enabled_channel_connections_do_not_require_public_url_or_encryption_key(): config = ChannelConnectionsConfig.model_validate( { "enabled": True, "telegram": { "enabled": True, "bot_username": "deerflow_bot", }, "slack": {"enabled": True}, "discord": {"enabled": True}, } ) assert config.enabled is True assert config.provider_status("telegram") == {"enabled": True, "configured": True} assert config.provider_status("slack") == {"enabled": True, "configured": True} assert config.provider_status("discord") == {"enabled": True, "configured": True} def test_provider_status_reports_disabled_and_unknown_providers(): config = ChannelConnectionsConfig.model_validate({"enabled": True}) assert config.provider_status("slack") == {"enabled": False, "configured": False} assert config.provider_status("telegram") == {"enabled": False, "configured": False} assert config.provider_status("discord") == {"enabled": False, "configured": False} assert config.provider_status("unknown") == {"enabled": False, "configured": False}