Skip to content

Commit 80ea86c

Browse files
committed
Remove trailing pipe in Hit.ToString() if captured data is empty
Closes #646
1 parent a9632d5 commit 80ea86c

2 files changed

Lines changed: 28 additions & 1 deletion

File tree

RuriLib.Tests/Models/Hits/HitModelsTests.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,32 @@ public void Hit_CapturedDataString_UsesNullFallback()
4141
Assert.Equal("TOKEN = null", hit.CapturedDataString);
4242
}
4343

44+
[Fact]
45+
public void Hit_ToString_OmitsSeparatorWhenCapturedDataIsEmpty()
46+
{
47+
var hit = new Hit
48+
{
49+
Data = new DataLine("user:pass", new WordlistType())
50+
};
51+
52+
Assert.Equal("user:pass", hit.ToString());
53+
}
54+
55+
[Fact]
56+
public void Hit_ToString_JoinsDataAndCapturedDataWhenBothArePresent()
57+
{
58+
var hit = new Hit
59+
{
60+
Data = new DataLine("user:pass", new WordlistType()),
61+
CapturedData = new Dictionary<string, object>
62+
{
63+
["TOKEN"] = "abc"
64+
}
65+
};
66+
67+
Assert.Equal("user:pass | TOKEN = abc", hit.ToString());
68+
}
69+
4470
[Fact]
4571
public async Task FileSystemHitOutput_Store_WritesUsingEnvironmentNewLine()
4672
{

RuriLib/Models/Hits/Hit.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ public class Hit
4646
/// Returns a compact string representation of the hit.
4747
/// </summary>
4848
/// <returns>The formatted hit string.</returns>
49-
public override string ToString() => $"{DataString} | {CapturedDataString}";
49+
public override string ToString()
50+
=> string.Join(" | ", new[] { DataString, CapturedDataString }.Where(s => !string.IsNullOrEmpty(s)));
5051

5152
private string ConvertCapturedData()
5253
{

0 commit comments

Comments
 (0)