From 088db165edded697f597554ad9d2e71eb1c83acf Mon Sep 17 00:00:00 2001 From: nkochnev Date: Fri, 12 Aug 2022 10:40:42 +0500 Subject: [PATCH] Added tests on backward direction of autocomplete --- .../TestConsoleInput.cs | 9 +++++++ ...omplete_PreviousChoice.Output.verified.txt | 1 + .../Unit/Prompts/TextPromptTests.cs | 24 +++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 test/Spectre.Console.Tests/Expectations/Prompts/Text/AutoComplete_PreviousChoice.Output.verified.txt diff --git a/src/Spectre.Console.Testing/TestConsoleInput.cs b/src/Spectre.Console.Testing/TestConsoleInput.cs index 09273cd..e471d30 100644 --- a/src/Spectre.Console.Testing/TestConsoleInput.cs +++ b/src/Spectre.Console.Testing/TestConsoleInput.cs @@ -61,6 +61,15 @@ public sealed class TestConsoleInput : IAnsiConsoleInput _input.Enqueue(new ConsoleKeyInfo((char)input, input, false, false, false)); } + /// + /// Pushes the specified key to the input queue. + /// + /// The input. + public void PushKey(ConsoleKeyInfo consoleKeyInfo) + { + _input.Enqueue(consoleKeyInfo); + } + /// public bool IsKeyAvailable() { diff --git a/test/Spectre.Console.Tests/Expectations/Prompts/Text/AutoComplete_PreviousChoice.Output.verified.txt b/test/Spectre.Console.Tests/Expectations/Prompts/Text/AutoComplete_PreviousChoice.Output.verified.txt new file mode 100644 index 0000000..86cb481 --- /dev/null +++ b/test/Spectre.Console.Tests/Expectations/Prompts/Text/AutoComplete_PreviousChoice.Output.verified.txt @@ -0,0 +1 @@ +Favorite fruit? [Banana/Bandana/Orange]: Ban   Banana      Bandana       Banana diff --git a/test/Spectre.Console.Tests/Unit/Prompts/TextPromptTests.cs b/test/Spectre.Console.Tests/Unit/Prompts/TextPromptTests.cs index 1410b64..69d0770 100644 --- a/test/Spectre.Console.Tests/Unit/Prompts/TextPromptTests.cs +++ b/test/Spectre.Console.Tests/Unit/Prompts/TextPromptTests.cs @@ -154,6 +154,30 @@ public sealed class TextPromptTests return Verifier.Verify(console.Output); } + [Fact] + [Expectation("AutoComplete_PreviousChoice")] + public Task Should_Auto_Complete_To_Previous_Choice_When_Pressing_ShiftTab_On_A_Match() + { + // Given + var console = new TestConsole(); + console.Input.PushText("Ban"); + console.Input.PushKey(ConsoleKey.Tab); + console.Input.PushKey(ConsoleKey.Tab); + var shiftTab = new ConsoleKeyInfo((char)ConsoleKey.Tab, ConsoleKey.Tab, true, false, false); + console.Input.PushKey(shiftTab); + console.Input.PushKey(ConsoleKey.Enter); + + // When + console.Prompt( + new TextPrompt("Favorite fruit?") + .AddChoice("Banana") + .AddChoice("Bandana") + .AddChoice("Orange")); + + // Then + return Verifier.Verify(console.Output); + } + [Fact] [Expectation("CustomValidation")] public Task Should_Return_Error_If_Custom_Validation_Fails()