"""Tests for config module."""
from src.config import Environment, Settings


def test_default_settings():
    s = Settings()
    assert s.environment == Environment.DEV
    assert s.is_dev is True
    assert "asyncpg" in s.database_url


def test_ses_defaults_when_unset(monkeypatch):
    for key in (
        "EMAIL_PROVIDER",
        "SES_REGION",
        "AWS_REGION",
        "SES_ACCESS_KEY_ID",
        "AWS_ACCESS_KEY_ID",
        "SES_SECRET_ACCESS_KEY",
        "AWS_SECRET_ACCESS_KEY",
        "SES_CONFIGURATION_SET",
        "CLOUD_EMAIL_PROVIDER",
        "CLOUD_EMAIL_FROM",
        "CLOUD_RESEND_API_KEY",
        "CLOUD_SES_ACCESS_KEY_ID",
        "CLOUD_SES_SECRET_ACCESS_KEY",
    ):
        monkeypatch.delenv(key, raising=False)
    s = Settings(_env_file=None)
    assert s.email_provider == "resend"
    assert s.ses_region == "us-east-1"
    assert s.ses_access_key_id == ""
    assert s.ses_secret_access_key == ""
    assert s.ses_configuration_set == ""
    assert s.cloud_email_provider == "resend"
    assert s.cloud_email_from == "noreply@p2hs.app"
    assert s.cloud_resend_api_key == ""
    assert s.cloud_ses_access_key_id == ""


def test_prod_flag():
    s = Settings(environment="prod")
    assert s.is_dev is False
