from sqlalchemy import Enum as SQLEnum

from models.enums import (
    MiningOperationType,
    ScenarioStatus,
    FinancialCategory,
    DistributionType,
)


def test_enum_members_and_sql_names():
    # Verify enum members exist
    assert MiningOperationType.OTHER.value == "other"
    assert ScenarioStatus.DRAFT.value == "draft"
    assert FinancialCategory.REVENUE.value == "revenue"
    assert DistributionType.NORMAL.value == "normal"

    # Verify SQLAlchemy SQLEnum name mapping is consistent
    assert SQLEnum(MiningOperationType, name="miningoperationtype").name == "miningoperationtype"
    assert SQLEnum(ScenarioStatus, name="scenariostatus").name == "scenariostatus"
    assert SQLEnum(FinancialCategory, name="financialcategory").name == "financialcategory"
    assert SQLEnum(DistributionType, name="distributiontype").name == "distributiontype"
