mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-12-19 00:25:49 +08:00
1.2 KiB
1.2 KiB
namespace Spectre.Console.Tests.Unit;
public partial class AnsiConsoleTests
{
public sealed class MarkupInterpolated
{
[Fact]
public void Should_Print_Simple_Interpolated_Strings()
{
// Given
var console = new TestConsole()
.Colors(ColorSystem.Standard)
.EmitAnsiSequences();
// When
const string Path = "file://c:/temp/[x].txt";
console.MarkupInterpolated($"[Green]{Path}[/]");
// Then
console.Output.ShouldBe($"{Path}");
}
[Fact]
public void Should_Not_Throw_Error_On_Links_Brackets()
{
// Given
var console = new TestConsole()
.Colors(ColorSystem.Standard)
.EmitAnsiSequences();
// When
const string Path = "file://c:/temp/[x].txt";
console.MarkupInterpolated($"[link={Path}]{Path}[/]");
// Then
var pathAsRegEx = Regex.Replace(Path, "([/\\[\\]\\\\])", "\\$1", RegexOptions.Compiled | RegexOptions.IgnoreCase);
console.Output.ShouldMatch($"\\]8;id=[0-9]+;{pathAsRegEx}\\\\{pathAsRegEx}\\]8;;\\\\");
}
}
}
public partial class AnsiConsoleTests
{
public sealed class MarkupInterpolated
{
[Fact]
public void Should_Print_Simple_Interpolated_Strings()
{
// Given
var console = new TestConsole()
.Colors(ColorSystem.Standard)
.EmitAnsiSequences();
// When
const string Path = "file://c:/temp/[x].txt";
console.MarkupInterpolated($"[Green]{Path}[/]");
// Then
console.Output.ShouldBe($"{Path}");
}
[Fact]
public void Should_Not_Throw_Error_On_Links_Brackets()
{
// Given
var console = new TestConsole()
.Colors(ColorSystem.Standard)
.EmitAnsiSequences();
// When
const string Path = "file://c:/temp/[x].txt";
console.MarkupInterpolated($"[link={Path}]{Path}[/]");
// Then
var pathAsRegEx = Regex.Replace(Path, "([/\\[\\]\\\\])", "\\$1", RegexOptions.Compiled | RegexOptions.IgnoreCase);
console.Output.ShouldMatch($"\\]8;id=[0-9]+;{pathAsRegEx}\\\\{pathAsRegEx}\\]8;;\\\\");
}
}
}