Files
ttui/test/TinyTUI.Tests/TestInfrastructure/AnsiAssert.cs
T
chuan b26104fe95 feat: add tui test infrastructure
- add xunit regression project with virtual terminal output

- cover text input overlay rendering and component checks
2026-06-04 02:35:52 +08:00

25 lines
909 B
C#

using System.Text.RegularExpressions;
namespace TinyTUI.Tests.TestInfrastructure;
/// <summary>
/// 提供 ANSI 感知的测试断言辅助
/// </summary>
internal static partial class AnsiAssert
{
/// <summary>
/// 移除常见 ANSI 控制序列后比较可见文本
/// </summary>
public static void EqualVisible(string expected, string actual)
=> Assert.Equal(expected, AnsiRegex().Replace(actual, string.Empty));
/// <summary>
/// 移除常见 ANSI 控制序列后判断可见文本是否包含指定片段
/// </summary>
public static void ContainsVisible(string expected, string actual)
=> Assert.Contains(expected, AnsiRegex().Replace(actual, string.Empty), StringComparison.Ordinal);
[GeneratedRegex(@"\x1B(?:\[[0-?]*[ -/]*[@-~]|\][^\a]*(?:\a|\x1B\\)|_[^\a]*(?:\a|\x1B\\)|P[^\a]*(?:\a|\x1B\\))")]
private static partial Regex AnsiRegex();
}