from __future__ import annotations import pytest from PySide6.QtWidgets import QApplication from bedit_gui.controllers.view_menu_controller import ViewMenuController from bedit_gui.views.main_window import MainWindow @pytest.fixture(scope="module") def qt_app() -> QApplication: return QApplication.instance() or QApplication([]) @pytest.mark.unit def test_view_submenus_contain_visibility_actions( qt_app: QApplication, ) -> None: window = MainWindow() controller = ViewMenuController(window) assert window.ui.actionPanels.menu() is controller.panels_menu assert window.ui.actionToolbars.menu() is controller.toolbars_menu assert [action.text() for action in controller.panels_menu.actions()] == [ "Document Tree", "Log", ] assert [action.text() for action in controller.toolbars_menu.actions()] == [ "File", "Undo", ] assert all( action.isCheckable() for action in ( controller.panels_menu.actions() + controller.toolbars_menu.actions() ) )