"""Unit tests for font sizing UI helpers.""" from types import SimpleNamespace import importlib import pytest @pytest.fixture def font_helpers_module(): """Import the font helper utilities.""" return importlib.import_module("src.ui.font_helpers") def test_font_size_ui_state_manual_when_fitting_disabled(monkeypatch, font_helpers_module): """Manual font size should remain enabled when fitting is off.""" monkeypatch.setattr(font_helpers_module, "has_text_fitting", lambda: True) props = SimpleNamespace(enable_text_fitting=False, text_fitting_mode="FIT_CONTAIN") enabled, message = font_helpers_module.font_size_ui_state(props) assert enabled is True assert message == "" def test_font_size_ui_state_auto_when_fitting_enabled(monkeypatch, font_helpers_module): """Font size control shows auto-sizing message when fitting is active.""" monkeypatch.setattr(font_helpers_module, "has_text_fitting", lambda: True) props = SimpleNamespace(enable_text_fitting=True, text_fitting_mode="FIT_WIDTH") enabled, message = font_helpers_module.font_size_ui_state(props) assert enabled is False assert "Fit Width" in message def test_font_size_ui_state_without_text_fitting_feature(monkeypatch, font_helpers_module): """Without text fitting support, manual font sizing stays enabled.""" monkeypatch.setattr(font_helpers_module, "has_text_fitting", lambda: False) props = SimpleNamespace(enable_text_fitting=True, text_fitting_mode="FIT_WIDTH") enabled, message = font_helpers_module.font_size_ui_state(props) assert enabled is True assert message == ""