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);
+ }
+ }
+ }
+}