diff --git a/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Prompt.cs b/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Prompt.cs index 8a94889..07fd3c7 100644 --- a/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Prompt.cs +++ b/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Prompt.cs @@ -41,10 +41,15 @@ namespace Spectre.Console /// /// The console. /// The prompt markup text. + /// Specifies the default answer. /// true if the user selected "yes", otherwise false. - public static bool Confirm(this IAnsiConsole console, string prompt) + public static bool Confirm(this IAnsiConsole console, string prompt, bool defaultValue = true) { - return new ConfirmationPrompt(prompt).Show(console); + return new ConfirmationPrompt(prompt) + { + DefaultValue = defaultValue, + } + .Show(console); } } } diff --git a/test/Spectre.Console.Tests/Unit/AnsiConsoleTests.Prompt.cs b/test/Spectre.Console.Tests/Unit/AnsiConsoleTests.Prompt.cs new file mode 100644 index 0000000..c4f3522 --- /dev/null +++ b/test/Spectre.Console.Tests/Unit/AnsiConsoleTests.Prompt.cs @@ -0,0 +1,29 @@ +using System; +using Shouldly; +using Spectre.Console.Testing; +using Xunit; + +namespace Spectre.Console.Tests.Unit +{ + public partial class AnsiConsoleTests + { + public sealed class Prompt + { + [Theory] + [InlineData(true, true)] + [InlineData(false, false)] + public void Should_Return_Default_Value_If_Nothing_Is_Entered(bool expected, bool defaultValue) + { + // Given + var console = new TestConsole().EmitAnsiSequences(); + console.Input.PushKey(ConsoleKey.Enter); + + // When + var result = console.Confirm("Want some prompt?", defaultValue); + + // Then + result.ShouldBe(expected); + } + } + } +}