* feat: add diagnostics console logs * test: avoid secret-like redaction fixtures * fix: address console logs review feedback * fix: harden console log capture lifecycle * fix: report console log drop summaries * fix: address diagnostics review cleanups
39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using Elsa.Diagnostics.ConsoleLogs.Services;
|
|
|
|
namespace Elsa.Diagnostics.ConsoleLogs.UnitTests.Capture;
|
|
|
|
public class ConsoleLineFormatterTests
|
|
{
|
|
[Fact]
|
|
public void Format_StripsAnsiByDefault()
|
|
{
|
|
var formatter = new ConsoleLineFormatter(Microsoft.Extensions.Options.Options.Create(new ConsoleLogsOptions()));
|
|
|
|
var result = formatter.Format("\u001b[31mred\u001b[0m");
|
|
|
|
Assert.Equal("red", result.Text);
|
|
Assert.False(result.Truncated);
|
|
}
|
|
|
|
[Fact]
|
|
public void Format_PreservesAnsiWhenConfigured()
|
|
{
|
|
var formatter = new ConsoleLineFormatter(Microsoft.Extensions.Options.Options.Create(new ConsoleLogsOptions { StripAnsiEscapeSequences = false }));
|
|
|
|
var result = formatter.Format("\u001b[31mred\u001b[0m");
|
|
|
|
Assert.Equal("\u001b[31mred\u001b[0m", result.Text);
|
|
}
|
|
|
|
[Fact]
|
|
public void Format_TruncatesOversizedLine()
|
|
{
|
|
var formatter = new ConsoleLineFormatter(Microsoft.Extensions.Options.Options.Create(new ConsoleLogsOptions { MaxLineLength = 3 }));
|
|
|
|
var result = formatter.Format("abcdef");
|
|
|
|
Assert.Equal("abc", result.Text);
|
|
Assert.True(result.Truncated);
|
|
}
|
|
}
|