1
0
Fork 0
textual-textarea/tests/functional_tests/test_goto.py

37 lines
1.1 KiB
Python
Raw Permalink Normal View History

import pytest
from textual.app import App
from textual_textarea import TextEditor
from textual_textarea.goto_input import GotoLineInput
@pytest.mark.asyncio
async def test_goto_line(app: App) -> None:
async with app.run_test() as pilot:
ta = app.query_one("#ta", expect_type=TextEditor)
ta.text = "\n" * 50
await pilot.pause()
assert ta.selection.start == ta.selection.end == (0, 0)
await pilot.press("ctrl+g")
goto_input = app.query_one(GotoLineInput)
assert goto_input
assert goto_input.has_focus
assert "51" in goto_input.placeholder
await pilot.press("1")
await pilot.press("2")
await pilot.press("enter")
assert ta.text_input
assert ta.text_input.has_focus
assert ta.selection.start == ta.selection.end == (11, 0)
# ensure pressing ctrl+g twice doesn't crash
await pilot.press("ctrl+g")
goto_input = app.query_one(GotoLineInput)
assert goto_input.has_focus
await pilot.press("2")
await pilot.press("ctrl+g")