"""SettingsRegistry 테스트.

Phase 2.4.
"""
from unittest.mock import patch

import pytest

from app.core.settings_registry import SettingsRegistry


def test_is_feature_enabled_fal_ai_from_env():
    with patch("app.core.config.settings.fal_ai_enabled", True):
        assert SettingsRegistry.is_feature_enabled("fal_ai") is True


def test_is_feature_enabled_unknown_feature_false():
    assert SettingsRegistry.is_feature_enabled("totally_made_up") is False


def test_get_model_for_step_project_override():
    project_config = {"models": {"scene_detail": "gpt-5.5-mini"}}
    assert SettingsRegistry.get_model_for_step("scene_detail", project_config) == "gpt-5.5-mini"


def test_get_model_for_step_manifest_default():
    # 2026-07-11 Gemini 원복: scene_detail = gemini-pro (시각 추론 강화 — Phase 9.2 원값)
    assert SettingsRegistry.get_model_for_step("scene_detail") == "gemini-pro"
    # Phase 9.2: t2i_review manifest default = "gpt" (영어 prompt 검수)
    assert SettingsRegistry.get_model_for_step("t2i_review") == "gpt"


def test_get_model_for_step_fallback():
    # 미지 step → "gpt" fallback
    assert SettingsRegistry.get_model_for_step("totally_made_up") == "gpt"
