"""Tests for UIPanelConfig in src/type_aliases.py Per-aggregate dataclass regression-guard for the metadata_promotion_20260624 track. CONVENTION: 1-space indentation. NO COMMENTS. """ from __future__ import annotations from dataclasses import FrozenInstanceError import pytest from src.type_aliases import UIPanelConfig def test_constructor_with_kwargs() -> None: cfg = UIPanelConfig(separate_message_panel=True, separate_response_panel=False, separate_tool_calls_panel=True) assert cfg.separate_message_panel is True assert cfg.separate_response_panel is False assert cfg.separate_tool_calls_panel is True def test_field_access() -> None: cfg = UIPanelConfig(separate_message_panel=True) assert cfg.separate_message_panel is True def test_frozen_raises_on_mutation() -> None: cfg = UIPanelConfig() with pytest.raises(FrozenInstanceError): cfg.separate_message_panel = True def test_to_dict_roundtrip() -> None: cfg = UIPanelConfig(separate_message_panel=True, separate_response_panel=True, separate_tool_calls_panel=False) d = cfg.to_dict() assert d["separate_message_panel"] is True assert d["separate_response_panel"] is True assert d["separate_tool_calls_panel"] is False def test_default_values() -> None: cfg = UIPanelConfig() assert cfg.separate_message_panel is False assert cfg.separate_response_panel is False assert cfg.separate_tool_calls_panel is False def test_hashability() -> None: cfg = UIPanelConfig(separate_message_panel=True) assert hash(cfg) is not None