diff options
| author | historia <historiavg@proton.me> | 2026-08-25 21:02:21 -0400 |
|---|---|---|
| committer | historia <historiavg@proton.me> | 2026-08-25 21:02:21 -0400 |
| commit | 4c3e78c39c81d2997e88b84e1b5a25b244e870e4 (patch) | |
| tree | 92c8df5cf5cf240da00d481df1d82105b69feb22 /app/tests/test_tui.py | |
| parent | d453d88d1d40c5e54af07ceb89c8c18d09cfdb0e (diff) | |
| download | tts-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.py | 35 |
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] |
