From d622e596a14338771bdd43a8812ff7fc02f7ebe8 Mon Sep 17 00:00:00 2001 From: Matias <1847940+matias-casal@users.noreply.github.com> Date: Wed, 16 Jul 2025 00:35:58 -0300 Subject: feat(cli): clear input buffer on CTRL+C when not executing commands (#1729) Co-authored-by: Scott Densmore --- .../cli/src/ui/components/InputPrompt.test.tsx | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'packages/cli/src/ui/components/InputPrompt.test.tsx') diff --git a/packages/cli/src/ui/components/InputPrompt.test.tsx b/packages/cli/src/ui/components/InputPrompt.test.tsx index 53a2cb0e..e1d68125 100644 --- a/packages/cli/src/ui/components/InputPrompt.test.tsx +++ b/packages/cli/src/ui/components/InputPrompt.test.tsx @@ -543,4 +543,30 @@ describe('InputPrompt', () => { expect(props.buffer.newline).toHaveBeenCalled(); unmount(); }); + + it('should clear the buffer on Ctrl+C if it has text', async () => { + props.buffer.setText('some text to clear'); + const { stdin, unmount } = render(); + await wait(); + + stdin.write('\x03'); // Ctrl+C character + await wait(); + + expect(props.buffer.setText).toHaveBeenCalledWith(''); + expect(mockCompletion.resetCompletionState).toHaveBeenCalled(); + expect(props.onSubmit).not.toHaveBeenCalled(); + unmount(); + }); + + it('should NOT clear the buffer on Ctrl+C if it is empty', async () => { + props.buffer.text = ''; + const { stdin, unmount } = render(); + await wait(); + + stdin.write('\x03'); // Ctrl+C character + await wait(); + + expect(props.buffer.setText).not.toHaveBeenCalled(); + unmount(); + }); }); -- cgit v1.2.3