import pytest from fasthtml.components import * from myfasthtml.controls.TabsManager import TabsManager from myfasthtml.core.instances import InstancesManager from .conftest import session @pytest.fixture() def tabs_manager(session): yield TabsManager(session) InstancesManager.reset() def test_tabs_manager_is_registered(session, tabs_manager): from_instance_manager = InstancesManager.get(session, tabs_manager.get_id()) assert from_instance_manager == tabs_manager def test_i_can_add_tab(tabs_manager): tab_id = tabs_manager.add_tab("Users", Div("Content 1")) assert tab_id is not None assert tab_id in tabs_manager.get_state().tabs assert tabs_manager.get_state().tabs[tab_id]["label"] == "Users" assert tabs_manager.get_state().tabs[tab_id]["component_type"] is None # Div is not BaseInstance assert tabs_manager.get_state().tabs[tab_id]["component_id"] is None # Div is not BaseInstance assert tabs_manager.get_state().tabs_order == [tab_id] assert tabs_manager.get_state().active_tab == tab_id