from conftest import dismiss_launch_popup
from tui import Tui
def test_keybinds_popup_scrolls_and_closes(tui: Tui) -> None:
dismiss_launch_popup(tui)
tui.send("?")
screen = tui.expect("keybindings")
assert "BROWSE" in screen
for _ in range(24):
tui.send("j")
screen = tui.expect("VISUAL")
assert "LEADER" in screen
tui.key("ESC")
tui.expect_gone("keybindings")
def test_command_line_filters_and_opens_settings(tui: Tui) -> None:
dismiss_launch_popup(tui)
tui.send(":")
screen = tui.expect("clone") assert "settings" in screen
tui.type_query("set")
screen = tui.expect("settings")
assert "clone the selected" not in screen
tui.key("ENTER")
screen = tui.expect("editor") assert "theme" in screen and "cache" in screen
tui.key("TAB") screen = tui.expect("catppuccin-mocha")
assert "\u25cf" in screen
tui.send("j") tui.key("ENTER") screen = tui.expect("INSERT")
tui.key("ESC") tui.key("ESC") tui.expect_gone("settings")
def test_visual_mode_and_clone_wizard(provider_tui: Tui) -> None:
tui = provider_tui
tui.type_query("zzz") tui.key("ENTER")
tui.expect("local")
tui.key("ENTER")
tui.expect("beta/")
tui.send("v")
screen = tui.expect("\u25cb")
assert "VISUAL" in screen
tui.send(" ") tui.send("j")
tui.send(" ") tui.expect("\u25cf")
tui.send(":")
tui.type_query("clone")
tui.key("ENTER")
screen = tui.expect("clone — 1/3 repos")
assert "local/alpha" in screen and "local/beta" in screen
tui.key("TAB")
tui.key("ENTER") tui.expect("2/3 destination")
tui.key("TAB")
tui.key("ENTER") screen = tui.expect("3/3 summary")
assert "git clone" in screen
tui.key("ESC") tui.expect_gone("clone —")
assert "VISUAL" in tui.screen()
tui.send("v") tui.expect("BROWSE")
assert "\u25cf" in tui.screen()
tui.send(" ")
tui.send("c") tui.expect_gone("\u25cf")