feat(diff): add persisted side-by-side and wrap toggles to the diff viewer
This commit is contained in:
@@ -17,6 +17,13 @@ public class DiffViewerViewModelTests
|
||||
LocaleStore.Load(Path.Combine(dir!, "src", "ClaudeDo.Localization", "locales")), "en");
|
||||
}
|
||||
|
||||
// A throwaway config path — the view toggles call Save(), and a test must never
|
||||
// overwrite the developer's real ~/.todo-app/ui.config.json.
|
||||
private static AppSettings TestSettings() => new()
|
||||
{
|
||||
ConfigPath = Path.Combine(Path.GetTempPath(), $"claudedo-uicfg-{Guid.NewGuid():N}.json"),
|
||||
};
|
||||
|
||||
private sealed class FakePlanningWorker : StubWorkerClient
|
||||
{
|
||||
public IReadOnlyList<SubtaskDiffDto> AggregateResult { get; set; } = Array.Empty<SubtaskDiffDto>();
|
||||
@@ -36,7 +43,7 @@ public class DiffViewerViewModelTests
|
||||
[Fact]
|
||||
public async Task CommitRange_NullHeadCommit_ShowsUnavailable()
|
||||
{
|
||||
var vm = new DiffViewerViewModel(null!, new FakePlanningWorker());
|
||||
var vm = new DiffViewerViewModel(null!, new FakePlanningWorker(), TestSettings());
|
||||
vm.ConfigureCommitRange("/some/repo", "abc123", null);
|
||||
|
||||
await vm.LoadAsync();
|
||||
@@ -49,7 +56,7 @@ public class DiffViewerViewModelTests
|
||||
[Fact]
|
||||
public async Task CommitRange_NullBaseRef_ShowsUnavailable()
|
||||
{
|
||||
var vm = new DiffViewerViewModel(null!, new FakePlanningWorker());
|
||||
var vm = new DiffViewerViewModel(null!, new FakePlanningWorker(), TestSettings());
|
||||
vm.ConfigureCommitRange("/some/repo", null, "def456");
|
||||
|
||||
await vm.LoadAsync();
|
||||
@@ -104,7 +111,7 @@ public class DiffViewerViewModelTests
|
||||
new SubtaskDiffDto("s2", "Second", "branch-2", "base2", "head2", "+2 -1", "diff2"),
|
||||
}
|
||||
};
|
||||
var vm = new DiffViewerViewModel(null!, fake);
|
||||
var vm = new DiffViewerViewModel(null!, fake, TestSettings());
|
||||
vm.ConfigurePlanning("plan-1", "main");
|
||||
|
||||
await vm.LoadAsync();
|
||||
@@ -124,7 +131,7 @@ public class DiffViewerViewModelTests
|
||||
new SubtaskDiffDto("s2", "Second", "b2", "base2", "head2", null, "DIFF-B"),
|
||||
}
|
||||
};
|
||||
var vm = new DiffViewerViewModel(null!, fake);
|
||||
var vm = new DiffViewerViewModel(null!, fake, TestSettings());
|
||||
vm.ConfigurePlanning("plan-1", "main");
|
||||
await vm.LoadAsync();
|
||||
|
||||
@@ -141,7 +148,7 @@ public class DiffViewerViewModelTests
|
||||
AggregateResult = new[] { new SubtaskDiffDto("s1", "First", "b1", "base1", "head1", null, "DIFF-A") },
|
||||
CombinedResult = new CombinedDiffResultDto(true, "integration-branch", "COMBINED-DIFF", null, null),
|
||||
};
|
||||
var vm = new DiffViewerViewModel(null!, fake);
|
||||
var vm = new DiffViewerViewModel(null!, fake, TestSettings());
|
||||
vm.ConfigurePlanning("plan-1", "main");
|
||||
await vm.LoadAsync();
|
||||
|
||||
@@ -162,7 +169,7 @@ public class DiffViewerViewModelTests
|
||||
AggregateResult = new[] { new SubtaskDiffDto("s1", "First", "b1", "base1", "head1", null, "DIFF-A") },
|
||||
CombinedResult = new CombinedDiffResultDto(false, null, null, "subtask-42", new[] { "a.cs", "b.cs" }),
|
||||
};
|
||||
var vm = new DiffViewerViewModel(null!, fake);
|
||||
var vm = new DiffViewerViewModel(null!, fake, TestSettings());
|
||||
vm.ConfigurePlanning("plan-1", "main");
|
||||
await vm.LoadAsync();
|
||||
|
||||
@@ -184,7 +191,7 @@ public class DiffViewerViewModelTests
|
||||
AggregateResult = new[] { new SubtaskDiffDto("s1", "First", "b1", "base1", "head1", null, "DIFF-A") },
|
||||
CombinedResult = null,
|
||||
};
|
||||
var vm = new DiffViewerViewModel(null!, fake);
|
||||
var vm = new DiffViewerViewModel(null!, fake, TestSettings());
|
||||
vm.ConfigurePlanning("plan-1", "main");
|
||||
await vm.LoadAsync();
|
||||
|
||||
@@ -205,7 +212,7 @@ public class DiffViewerViewModelTests
|
||||
AggregateResult = new[] { new SubtaskDiffDto("s1", "First", "b1", "base1", "head1", null, "DIFF-A") },
|
||||
CombinedException = "planning task not found",
|
||||
};
|
||||
var vm = new DiffViewerViewModel(null!, fake);
|
||||
var vm = new DiffViewerViewModel(null!, fake, TestSettings());
|
||||
vm.ConfigurePlanning("plan-1", "main");
|
||||
await vm.LoadAsync();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user