diff --git a/tests/test_footer.py b/tests/test_footer.py new file mode 100644 index 000000000..26e46cf29 --- /dev/null +++ b/tests/test_footer.py @@ -0,0 +1,28 @@ +from textual.app import App, ComposeResult +from textual.geometry import Offset +from textual.screen import ModalScreen +from textual.widgets import Footer, Label + + +async def test_footer_highlight_when_pushing_modal(): + """Regression test for https://github.com/Textualize/textual/issues/2606""" + + class MyModalScreen(ModalScreen): + def compose(self) -> ComposeResult: + yield Label("apple") + + class MyApp(App[None]): + BINDINGS = [("a", "p", "push")] + + def compose(self) -> ComposeResult: + yield Footer() + + def action_p(self): + self.push_screen(MyModalScreen()) + + app = MyApp() + async with app.run_test(size=(80, 2)) as pilot: + await pilot.hover(None, Offset(0, 1)) + await pilot.click(None, Offset(0, 1)) + assert isinstance(app.screen, MyModalScreen) + assert app.screen_stack[0].query_one(Footer).highlight_key is None