aboutsummaryrefslogtreecommitdiff
path: root/app/tests/test_tui.py
diff options
context:
space:
mode:
authorhistoria <historiavg@proton.me>2026-08-25 21:02:21 -0400
committerhistoria <historiavg@proton.me>2026-08-25 21:02:21 -0400
commit4c3e78c39c81d2997e88b84e1b5a25b244e870e4 (patch)
tree92c8df5cf5cf240da00d481df1d82105b69feb22 /app/tests/test_tui.py
parentd453d88d1d40c5e54af07ceb89c8c18d09cfdb0e (diff)
downloadtts-audiobook-generator-4c3e78c39c81d2997e88b84e1b5a25b244e870e4.tar.gz
feat: prompt to save settings when going back from settings menu
Diffstat (limited to 'app/tests/test_tui.py')
-rw-r--r--app/tests/test_tui.py35
1 files changed, 35 insertions, 0 deletions
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]