mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-04-16 17:02:51 +08:00
mask default value when prompt is a secret
This commit is contained in:
parent
a3e11b24e5
commit
dee3c01629
@ -0,0 +1 @@
|
|||||||
|
Favorite fruit? (******): ******
|
@ -200,5 +200,23 @@ namespace Spectre.Console.Tests.Unit
|
|||||||
result.Item1.ShouldBe(2);
|
result.Item1.ShouldBe(2);
|
||||||
return Verifier.Verify(console.Output);
|
return Verifier.Verify(console.Output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[Expectation("SecretDefaultValue")]
|
||||||
|
public Task Should_Chose_Masked_Default_Value_If_Nothing_Is_Entered_And_Prompt_Is_Secret()
|
||||||
|
{
|
||||||
|
// Given
|
||||||
|
var console = new FakeConsole();
|
||||||
|
console.Input.PushKey(ConsoleKey.Enter);
|
||||||
|
|
||||||
|
// When
|
||||||
|
console.Prompt(
|
||||||
|
new TextPrompt<string>("Favorite fruit?")
|
||||||
|
.Secret()
|
||||||
|
.DefaultValue("Banana"));
|
||||||
|
|
||||||
|
// Then
|
||||||
|
return Verifier.Verify(console.Output);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,7 @@ namespace Spectre.Console
|
|||||||
{
|
{
|
||||||
if (DefaultValue != null)
|
if (DefaultValue != null)
|
||||||
{
|
{
|
||||||
console.Write(converter(DefaultValue.Value), promptStyle);
|
console.Write(IsSecret ? "******" : converter(DefaultValue.Value), promptStyle);
|
||||||
console.WriteLine();
|
console.WriteLine();
|
||||||
return DefaultValue.Value;
|
return DefaultValue.Value;
|
||||||
}
|
}
|
||||||
@ -186,10 +186,11 @@ namespace Spectre.Console
|
|||||||
|
|
||||||
if (ShowDefaultValue && DefaultValue != null)
|
if (ShowDefaultValue && DefaultValue != null)
|
||||||
{
|
{
|
||||||
|
var converter = Converter ?? TypeConverterHelper.ConvertToString;
|
||||||
builder.AppendFormat(
|
builder.AppendFormat(
|
||||||
CultureInfo.InvariantCulture,
|
CultureInfo.InvariantCulture,
|
||||||
" [green]({0})[/]",
|
" [green]({0})[/]",
|
||||||
TypeConverterHelper.ConvertToString(DefaultValue.Value));
|
IsSecret ? "******" : converter(DefaultValue.Value));
|
||||||
}
|
}
|
||||||
|
|
||||||
var markup = builder.ToString().Trim();
|
var markup = builder.ToString().Trim();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user