"""Basic tests for shared config loader."""
from services.shared.config import AlertingConfig, AppConfig, load_config


def test_load_config_returns_app_config():
    config = load_config()
    assert isinstance(config, AppConfig)


def test_postgres_dsn_format():
    config = load_config()
    assert config.postgres.dsn.startswith("postgresql://")


def test_redis_url_format():
    config = load_config()
    assert config.redis.url.startswith("redis://")


def test_default_broker_mode():
    config = load_config()
    assert config.broker.mode == "paper"


def test_alerting_config_defaults():
    config = load_config()
    assert isinstance(config.alerting, AlertingConfig)
    assert config.alerting.source_failure_threshold == 3
    assert config.alerting.schema_failure_rate_threshold == 0.3
    assert config.alerting.lake_lag_threshold_minutes == 60
    assert config.alerting.broker_error_threshold == 3
    assert config.alerting.check_interval_seconds == 120
