From 5fc16c6af0f7fd6f0fde69a123fd3f3c3d8c4401 Mon Sep 17 00:00:00 2001 From: Dave Pearson Date: Mon, 30 Jan 2023 20:34:22 +0000 Subject: [PATCH] Add extra unit tests for password field movement Here we're just testing the exceptional situations. --- .../input/test_input_key_movement_actions.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/input/test_input_key_movement_actions.py b/tests/input/test_input_key_movement_actions.py index 2d0bc1338..a6cf13694 100644 --- a/tests/input/test_input_key_movement_actions.py +++ b/tests/input/test_input_key_movement_actions.py @@ -97,6 +97,16 @@ async def test_input_left_word_from_end() -> None: assert input.cursor_position == expected_at[input.id] +async def test_password_input_left_word_from_end() -> None: + """Going left one word from the end in a password field should land at home.""" + async with InputTester().run_test() as pilot: + for input in pilot.app.query(Input): + input.action_end() + input.password = True + input.action_cursor_left_word() + assert input.cursor_position == 0 + + async def test_input_right_word_from_home() -> None: """Going right one word from the start should land correctly..""" async with InputTester().run_test() as pilot: @@ -112,6 +122,15 @@ async def test_input_right_word_from_home() -> None: assert input.cursor_position == expected_at[input.id] +async def test_password_input_right_word_from_home() -> None: + """Going right one word from the start of a password input should go to the end.""" + async with InputTester().run_test() as pilot: + for input in pilot.app.query(Input): + input.password = True + input.action_cursor_right_word() + assert input.cursor_position == len(input.value) + + async def test_input_right_word_from_end() -> None: """Going right one word from the end should do nothing.""" async with InputTester().run_test() as pilot: