fix(claude-do): merge preview_merge_set: don't report a symbol as removed when the
ClaudeDo-Task: 4882c459-374c-4afe-a60d-2b25b8cce407
This commit is contained in:
@@ -1359,6 +1359,47 @@ public sealed class MergeMcpToolsTests : IDisposable
|
||||
Assert.Equal("Bar.cs", warning.ReferencedInFile);
|
||||
}
|
||||
|
||||
private static List<MergeMcpTools.DiffLine> Diff(string file, params string[] lines)
|
||||
=> lines.Select(l => new MergeMcpTools.DiffLine(file, l[0], l[1..])).ToList();
|
||||
|
||||
[Fact]
|
||||
public void ExtractRemovedSymbols_AutoPropertyBecomesObservableField_NotReported()
|
||||
{
|
||||
var onOwnLine = Diff("Vm.cs",
|
||||
"- public bool IsListHandler { get; set; }",
|
||||
"+ [ObservableProperty]",
|
||||
"+ private bool _isListHandler;");
|
||||
var inline = Diff("Vm.cs",
|
||||
"- public bool IsListHandler { get; set; }",
|
||||
"+ [ObservableProperty] private bool isListHandler;");
|
||||
|
||||
Assert.Empty(MergeMcpTools.ExtractRemovedSymbols(onOwnLine));
|
||||
Assert.Empty(MergeMcpTools.ExtractRemovedSymbols(inline));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExtractRemovedSymbols_ChangedMethodSignatureInSameFile_NotReported()
|
||||
{
|
||||
var diff = Diff("Foo.cs",
|
||||
"- public void Run(int a)",
|
||||
"+ public void Run(int a, string b)");
|
||||
|
||||
Assert.Empty(MergeMcpTools.ExtractRemovedSymbols(diff));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExtractRemovedSymbols_RealRemovalOrCrossFileMove_StillReported()
|
||||
{
|
||||
var diff = Diff("Foo.cs", "- private void Gone()", "- public void Moved()")
|
||||
.Concat(Diff("Other.cs", "+ public void Moved()")).ToList();
|
||||
|
||||
var removed = MergeMcpTools.ExtractRemovedSymbols(diff);
|
||||
|
||||
Assert.Equal(2, removed.Count);
|
||||
Assert.Contains(removed, s => s.Name == "Gone" && s.File == "Foo.cs");
|
||||
Assert.Contains(removed, s => s.Name == "Moved" && s.File == "Foo.cs");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task PreviewMergeSet_TwoTasksAddDifferentJsonKeys_ReportsNoOverlap()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user