From 4c3e78c39c81d2997e88b84e1b5a25b244e870e4 Mon Sep 17 00:00:00 2001 From: historia Date: Tue, 25 Aug 2026 21:02:21 -0400 Subject: feat: prompt to save settings when going back from settings menu --- app/tests/test_tui.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'app/tests/test_tui.py') diff --git a/app/tests/test_tui.py b/app/tests/test_tui.py index 1b7af86..c2cd267 100644 --- a/app/tests/test_tui.py +++ b/app/tests/test_tui.py @@ -440,6 +440,41 @@ class ConfirmTests(TuiTestCase): marker) +class ConfirmYnCancelTests(TuiTestCase): + def test_enter_takes_the_default_yes(self): + screen = FakeScreen(keys=[10]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "yes") + + def test_tab_enter_selects_no_then_cancel(self): + screen = FakeScreen(keys=[9, 10]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "no") + screen = FakeScreen(keys=[9, 9, 10]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "cancel") + + def test_buttons_wrap_around(self): + # Moving back from Yes lands on Cancel. + screen = FakeScreen(keys=[FakeCurses.KEY_LEFT, 10]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "cancel") + + def test_y_and_n_answer_directly(self): + screen = FakeScreen(keys=[ord("y")]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "yes") + screen = FakeScreen(keys=[ord("n")]) + self.assertEqual(tui.confirm_yn_cancel(screen, "Save settings?"), + "no") + + def test_esc_and_q_count_as_cancel(self): + for key in (27, ord("q")): + screen = FakeScreen(keys=[key]) + self.assertEqual( + tui.confirm_yn_cancel(screen, "Save settings?"), "cancel") + + class LineEditTests(TuiTestCase): def test_typing_backspace_and_enter(self): keys = [ord("c"), ord("d"), FakeCurses.KEY_BACKSPACE, 10] -- cgit v1.2.3