From d532e1011f58caae3bdbbe2a511a1a228c0d14d3 Mon Sep 17 00:00:00 2001
From: Antonio Valentini <4293609+antoniovalentini@users.noreply.github.com>
Date: Mon, 12 Jul 2021 08:47:36 +0200
Subject: [PATCH] Add default value parameter to Confirm extension
Closes #482
---
.../AnsiConsoleExtensions.Prompt.cs | 9 ++++--
.../Unit/AnsiConsoleTests.Prompt.cs | 29 +++++++++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
create mode 100644 test/Spectre.Console.Tests/Unit/AnsiConsoleTests.Prompt.cs
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);
+ }
+ }
+ }
+}