From 76d836a278063436c05a25522882263a497d846f Mon Sep 17 00:00:00 2001 From: mika kuns Date: Wed, 26 Aug 2026 10:11:58 +0200 Subject: [PATCH] test: dedupe the nested test doubles into one shared file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TestDbFactory was redeclared as a private nested class in 40 test files, NullServiceProvider and StubNotesApi in 14 each, DefaultStub in 5 — 73 declarations, all semantically identical (StubNotesApi differed only in formatting and type qualification). They now live in TestDoubles.cs next to the existing StubWorkerClient, which was already the shared-double pattern in this project. --- .../Services/ShellOpenTests.cs | 6 ---- tests/ClaudeDo.Ui.Tests/TestDoubles.cs | 32 +++++++++++++++++++ .../DetailsIslandConflictSeamTests.cs | 21 +----------- .../DetailsIslandDeleteTaskTests.cs | 19 ----------- .../DetailsIslandDescriptionSaveRaceTests.cs | 19 ----------- .../DetailsIslandEmptyStateTests.cs | 18 ----------- .../DetailsIslandErrorFeedbackTests.cs | 19 ----------- .../DetailsIslandHandlerRangeTests.cs | 19 ----------- .../ViewModels/DetailsIslandPlanningTests.cs | 19 ----------- .../ViewModels/DetailsIslandPrepModeTests.cs | 18 ----------- .../DetailsIslandResetAndRetryTests.cs | 19 ----------- .../DetailsIslandReviewActionsTests.cs | 19 ----------- .../DetailsIslandRoadblockReplyTests.cs | 19 ----------- .../ViewModels/DetailsIslandTabsTests.cs | 19 ----------- .../DetailsIslandTaskIdBadgeTests.cs | 18 ----------- .../DetailsIslandTaskUpdatedTests.cs | 19 ----------- .../ListsIslandErrorFeedbackTests.cs | 6 ---- .../ListsIslandHasNoLinkedRepoTests.cs | 6 ---- .../ViewModels/ListsIslandListUpdatedTests.cs | 6 ---- ...MergeHelperSelectionModalViewModelTests.cs | 6 ---- .../MissionControlViewModelTests.cs | 6 ---- .../RepoImportModalViewModelTests.cs | 6 ---- .../ViewModels/SettingsModalViewModelTests.cs | 6 ---- .../ViewModels/TaskMonitorViewModelTests.cs | 6 ---- .../TasksIslandAddAndSelectTests.cs | 6 ---- .../TasksIslandApproveReviewTests.cs | 6 ---- .../ViewModels/TasksIslandChainTests.cs | 6 ---- .../TasksIslandClassifyItemsTests.cs | 6 ---- .../ViewModels/TasksIslandDailyPrepTests.cs | 7 ---- .../ViewModels/TasksIslandEmptyStateTests.cs | 6 ---- .../TasksIslandErrorFeedbackTests.cs | 6 ---- .../TasksIslandFullReloadSelectionTests.cs | 6 ---- .../TasksIslandListSwitchSelectionTests.cs | 6 ---- .../ViewModels/TasksIslandMoveToListTests.cs | 6 ---- .../TasksIslandOpenConPtySessionTests.cs | 6 ---- .../TasksIslandOpenQuickClaudeSessionTests.cs | 6 ---- .../TasksIslandPlanningOperationTests.cs | 6 ---- ...asksIslandQueuePlanInteractiveGateTests.cs | 6 ---- .../ViewModels/TasksIslandRegroupTests.cs | 6 ---- .../TasksIslandRemoveFromQueueTests.cs | 6 ---- .../ViewModels/TasksIslandSelectByIdTests.cs | 6 ---- .../WorktreesOverviewBatchMergeTests.cs | 2 +- .../WorktreesOverviewReconcileTickTests.cs | 8 ++--- 43 files changed, 36 insertions(+), 428 deletions(-) create mode 100644 tests/ClaudeDo.Ui.Tests/TestDoubles.cs diff --git a/tests/ClaudeDo.Ui.Tests/Services/ShellOpenTests.cs b/tests/ClaudeDo.Ui.Tests/Services/ShellOpenTests.cs index cb21bc6e..146ad9c5 100644 --- a/tests/ClaudeDo.Ui.Tests/Services/ShellOpenTests.cs +++ b/tests/ClaudeDo.Ui.Tests/Services/ShellOpenTests.cs @@ -149,10 +149,4 @@ public class ShellOpenTests Assert.Null(reportedError); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } } diff --git a/tests/ClaudeDo.Ui.Tests/TestDoubles.cs b/tests/ClaudeDo.Ui.Tests/TestDoubles.cs new file mode 100644 index 00000000..9112b365 --- /dev/null +++ b/tests/ClaudeDo.Ui.Tests/TestDoubles.cs @@ -0,0 +1,32 @@ +using ClaudeDo.Data; +using ClaudeDo.Ui.Services; +using ClaudeDo.Ui.Services.Interfaces; +using Microsoft.EntityFrameworkCore; + +namespace ClaudeDo.Ui.Tests; + +/// +/// The test doubles every ViewModel test needs. They used to be redeclared as a private nested +/// class in each test file (TestDbFactory alone in 40 of them) — put new shared no-op doubles here +/// rather than copying one again. Test-specific behaviour still belongs in the test file. +/// +public sealed class TestDbFactory(Func create) : IDbContextFactory +{ + public ClaudeDoDbContext CreateDbContext() => create(); +} + +public sealed class NullServiceProvider : IServiceProvider +{ + public object? GetService(Type serviceType) => null; +} + +public sealed class StubNotesApi : INotesApi +{ + public Task> ListAsync(DateOnly day) => Task.FromResult(new List()); + public Task AddAsync(DateOnly day, string text) => Task.FromResult(null); + public Task UpdateAsync(string id, string text) => Task.CompletedTask; + public Task DeleteAsync(string id) => Task.CompletedTask; +} + +/// is abstract — this is the concrete no-op subclass. +public sealed class DefaultStub : StubWorkerClient { } diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandConflictSeamTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandConflictSeamTests.cs index 97d50e6d..74a56af2 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandConflictSeamTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandConflictSeamTests.cs @@ -35,27 +35,8 @@ public class DetailsIslandConflictSeamTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private sealed class ConflictApproveWorkerClient : StubWorkerClient { @@ -64,7 +45,7 @@ public class DetailsIslandConflictSeamTests : IDisposable Task.FromResult(new MergeResultDto("conflict", new[] { "a.cs" }, null)); } - private DetailsIslandViewModel BuildVm(StubWorkerClient worker, IMergeCoordinator merge) + private DetailsIslandViewModel BuildVm(StubWorkerClient worker, MergeCoordinator merge) { var factory = new TestDbFactory(NewContext); return new DetailsIslandViewModel(factory, worker, new NullServiceProvider(), new StubNotesApi(), merge); diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandDeleteTaskTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandDeleteTaskTests.cs index 185fedb1..45e38d00 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandDeleteTaskTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandDeleteTaskTests.cs @@ -33,27 +33,8 @@ public class DetailsIslandDeleteTaskTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private sealed class RecordingWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandDescriptionSaveRaceTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandDescriptionSaveRaceTests.cs index da7861e9..37a260ab 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandDescriptionSaveRaceTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandDescriptionSaveRaceTests.cs @@ -36,27 +36,8 @@ public class DetailsIslandDescriptionSaveRaceTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private sealed class FakeWorker : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandEmptyStateTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandEmptyStateTests.cs index 9a1fba1b..9162b974 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandEmptyStateTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandEmptyStateTests.cs @@ -31,27 +31,9 @@ public class DetailsIslandEmptyStateTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class DefaultStub : StubWorkerClient { } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } private DetailsIslandViewModel NewDetailsVm(StubWorkerClient stub) { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandErrorFeedbackTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandErrorFeedbackTests.cs index d9148920..656f8d7e 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandErrorFeedbackTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandErrorFeedbackTests.cs @@ -45,27 +45,8 @@ public class DetailsIslandErrorFeedbackTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private sealed class ThrowingWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandHandlerRangeTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandHandlerRangeTests.cs index b2f43c2d..781dd604 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandHandlerRangeTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandHandlerRangeTests.cs @@ -36,27 +36,8 @@ public class DetailsIslandHandlerRangeTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private sealed class FakeWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandPlanningTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandPlanningTests.cs index f95542f1..82c3f3a7 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandPlanningTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandPlanningTests.cs @@ -34,12 +34,6 @@ public class DetailsIslandPlanningTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class FakeWorkerClient : StubWorkerClient { @@ -48,20 +42,7 @@ public class DetailsIslandPlanningTests : IDisposable public override Task GetMergeTargetsAsync(string taskId) => Task.FromResult(MergeTargetsResult); } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private DetailsIslandViewModel BuildVm(StubWorkerClient worker) { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandPrepModeTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandPrepModeTests.cs index cc4ea701..624651bc 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandPrepModeTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandPrepModeTests.cs @@ -31,22 +31,8 @@ public class DetailsIslandPrepModeTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class DefaultStub : StubWorkerClient { } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private DetailsIslandViewModel NewDetailsVm(StubWorkerClient stub) { @@ -54,10 +40,6 @@ public class DetailsIslandPrepModeTests : IDisposable return new DetailsIslandViewModel(factory, stub, new NullServiceProvider(), new StubNotesApi(), new ClaudeDo.Ui.Services.MergeCoordinator()); } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } [Fact] public void PrepLine_event_appends_to_PrepLog() diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandResetAndRetryTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandResetAndRetryTests.cs index 66705855..477c5312 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandResetAndRetryTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandResetAndRetryTests.cs @@ -36,27 +36,8 @@ public class DetailsIslandResetAndRetryTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private sealed class RecordingWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandReviewActionsTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandReviewActionsTests.cs index de2317d3..334fb0e4 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandReviewActionsTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandReviewActionsTests.cs @@ -33,27 +33,8 @@ public class DetailsIslandReviewActionsTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private sealed class RecordingWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandRoadblockReplyTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandRoadblockReplyTests.cs index e68551ab..28394666 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandRoadblockReplyTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandRoadblockReplyTests.cs @@ -43,27 +43,8 @@ public class DetailsIslandRoadblockReplyTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private sealed class RecordingWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTabsTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTabsTests.cs index 09f43902..51f50a15 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTabsTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTabsTests.cs @@ -31,28 +31,9 @@ public class DetailsIslandTabsTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - // StubWorkerClient is abstract — use a concrete no-op subclass (same pattern as DetailsIslandPrepModeTests). - private sealed class DefaultStub : StubWorkerClient { } private DetailsIslandViewModel NewVm() { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTaskIdBadgeTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTaskIdBadgeTests.cs index 08786ed1..d9d75d15 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTaskIdBadgeTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTaskIdBadgeTests.cs @@ -33,27 +33,9 @@ public class DetailsIslandTaskIdBadgeTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class DefaultStub : StubWorkerClient { } private DetailsIslandViewModel NewVm() { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTaskUpdatedTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTaskUpdatedTests.cs index 41f8d676..b7a62ee6 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTaskUpdatedTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/DetailsIslandTaskUpdatedTests.cs @@ -35,27 +35,8 @@ public class DetailsIslandTaskUpdatedTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class NullServiceProvider : IServiceProvider - { - public object? GetService(Type serviceType) => null; - } - private sealed class StubNotesApi : ClaudeDo.Ui.Services.Interfaces.INotesApi - { - public Task> ListAsync(DateOnly day) => - Task.FromResult(new List()); - public Task AddAsync(DateOnly day, string text) => - Task.FromResult(null); - public Task UpdateAsync(string id, string text) => Task.CompletedTask; - public Task DeleteAsync(string id) => Task.CompletedTask; - } private sealed class FakeWorker : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandErrorFeedbackTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandErrorFeedbackTests.cs index 95697b36..b47cf73e 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandErrorFeedbackTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandErrorFeedbackTests.cs @@ -40,12 +40,6 @@ public class ListsIslandErrorFeedbackTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } [Fact] public void OpenFindings_WhenClaudedoFolderMissing_RaisesErrorReported() diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandHasNoLinkedRepoTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandHasNoLinkedRepoTests.cs index a769a034..e65bcd21 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandHasNoLinkedRepoTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandHasNoLinkedRepoTests.cs @@ -43,12 +43,6 @@ public class ListsIslandHasNoLinkedRepoTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class FakeWorker : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandListUpdatedTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandListUpdatedTests.cs index b3bdef31..b0e82abd 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandListUpdatedTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/ListsIslandListUpdatedTests.cs @@ -43,12 +43,6 @@ public class ListsIslandListUpdatedTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class FakeWorker : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/MergeHelperSelectionModalViewModelTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/MergeHelperSelectionModalViewModelTests.cs index 488b3d83..3a101a00 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/MergeHelperSelectionModalViewModelTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/MergeHelperSelectionModalViewModelTests.cs @@ -34,12 +34,6 @@ public class MergeHelperSelectionModalViewModelTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private MergeHelperSelectionModalViewModel BuildVm() => new(new TestDbFactory(NewContext)); diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/MissionControlViewModelTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/MissionControlViewModelTests.cs index 17f16365..70435e0b 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/MissionControlViewModelTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/MissionControlViewModelTests.cs @@ -36,12 +36,6 @@ public class MissionControlViewModelTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class FakeWorker : StubWorkerClient { } diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/RepoImportModalViewModelTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/RepoImportModalViewModelTests.cs index 357f9107..461f775d 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/RepoImportModalViewModelTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/RepoImportModalViewModelTests.cs @@ -30,12 +30,6 @@ public sealed class RepoImportModalViewModelTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class FakeWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/SettingsModalViewModelTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/SettingsModalViewModelTests.cs index c802c58a..5770c8c0 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/SettingsModalViewModelTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/SettingsModalViewModelTests.cs @@ -36,12 +36,6 @@ public class SettingsModalViewModelTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class FakeWorker : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TaskMonitorViewModelTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TaskMonitorViewModelTests.cs index 2cc1123d..1067188d 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TaskMonitorViewModelTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TaskMonitorViewModelTests.cs @@ -31,12 +31,6 @@ public class TaskMonitorViewModelTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class FakeWorker : StubWorkerClient { } diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandAddAndSelectTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandAddAndSelectTests.cs index 2084300b..cd8427fe 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandAddAndSelectTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandAddAndSelectTests.cs @@ -31,12 +31,6 @@ public class TasksIslandAddAndSelectTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private async Task SeedListAsync() { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandApproveReviewTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandApproveReviewTests.cs index c59f48b7..5c5c7146 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandApproveReviewTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandApproveReviewTests.cs @@ -33,12 +33,6 @@ public class TasksIslandApproveReviewTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class ThrowingWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandChainTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandChainTests.cs index d9b8d037..51c9ae9e 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandChainTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandChainTests.cs @@ -34,12 +34,6 @@ public class TasksIslandChainTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private TasksIslandViewModel BuildViewModel() { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandClassifyItemsTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandClassifyItemsTests.cs index 3e87a3e3..211701d2 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandClassifyItemsTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandClassifyItemsTests.cs @@ -36,12 +36,6 @@ public class TasksIslandClassifyItemsTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private TasksIslandViewModel BuildViewModel() { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandDailyPrepTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandDailyPrepTests.cs index b7edb175..531a9b06 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandDailyPrepTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandDailyPrepTests.cs @@ -30,14 +30,7 @@ public class TasksIslandDailyPrepTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } - private sealed class DefaultStub : StubWorkerClient { } private TasksIslandViewModel NewTasksVm(StubWorkerClient stub) => new(new TestDbFactory(NewContext), worker: stub); diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandEmptyStateTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandEmptyStateTests.cs index e6023a2c..016e4eb9 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandEmptyStateTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandEmptyStateTests.cs @@ -32,12 +32,6 @@ public class TasksIslandEmptyStateTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private async Task SeedListAsync(string listId, string title = "seed task") { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandErrorFeedbackTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandErrorFeedbackTests.cs index a8680f00..6e6f7bf5 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandErrorFeedbackTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandErrorFeedbackTests.cs @@ -44,12 +44,6 @@ public class TasksIslandErrorFeedbackTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class ThrowingWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandFullReloadSelectionTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandFullReloadSelectionTests.cs index a6e677a4..fbf1361a 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandFullReloadSelectionTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandFullReloadSelectionTests.cs @@ -36,12 +36,6 @@ public class TasksIslandFullReloadSelectionTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class FakeWorker : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandListSwitchSelectionTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandListSwitchSelectionTests.cs index 97862ae8..5bfca994 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandListSwitchSelectionTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandListSwitchSelectionTests.cs @@ -34,12 +34,6 @@ public class TasksIslandListSwitchSelectionTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private async Task SeedTwoListsAsync() { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandMoveToListTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandMoveToListTests.cs index f25d21f8..1bd236a9 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandMoveToListTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandMoveToListTests.cs @@ -36,12 +36,6 @@ public class TasksIslandMoveToListTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class FakeDialogService : IDialogService { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandOpenConPtySessionTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandOpenConPtySessionTests.cs index 44f1093b..70c5a4e6 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandOpenConPtySessionTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandOpenConPtySessionTests.cs @@ -30,12 +30,6 @@ public class TasksIslandOpenConPtySessionTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } [Fact] public void OpenConPtySessionCommand_RaisesOpenConPtySessionRequested_WithTaskId() diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandOpenQuickClaudeSessionTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandOpenQuickClaudeSessionTests.cs index 9271a221..15f73c41 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandOpenQuickClaudeSessionTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandOpenQuickClaudeSessionTests.cs @@ -30,12 +30,6 @@ public class TasksIslandOpenQuickClaudeSessionTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private TasksIslandViewModel BuildViewModel() => new(new TestDbFactory(NewContext), worker: null); diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandPlanningOperationTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandPlanningOperationTests.cs index 99c04f6f..9c7c48f1 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandPlanningOperationTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandPlanningOperationTests.cs @@ -35,12 +35,6 @@ public class TasksIslandPlanningOperationTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class GatedWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandQueuePlanInteractiveGateTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandQueuePlanInteractiveGateTests.cs index da5e5967..e66d19dc 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandQueuePlanInteractiveGateTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandQueuePlanInteractiveGateTests.cs @@ -36,12 +36,6 @@ public class TasksIslandQueuePlanInteractiveGateTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private sealed class RecordingWorkerClient : StubWorkerClient { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandRegroupTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandRegroupTests.cs index 81d5868c..422c61b9 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandRegroupTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandRegroupTests.cs @@ -33,12 +33,6 @@ public class TasksIslandRegroupTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private TasksIslandViewModel BuildViewModel() { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandRemoveFromQueueTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandRemoveFromQueueTests.cs index 21a26352..c86ceb87 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandRemoveFromQueueTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandRemoveFromQueueTests.cs @@ -33,12 +33,6 @@ public class TasksIslandRemoveFromQueueTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } // RemoveFromQueueAsync now routes the dequeue through IWorkerClient.DequeueTaskAsync (the // guarded TaskStateService transition) instead of writing the DB directly. This fake performs diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandSelectByIdTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandSelectByIdTests.cs index 7187a5f0..ab63518b 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandSelectByIdTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/TasksIslandSelectByIdTests.cs @@ -32,12 +32,6 @@ public class TasksIslandSelectByIdTests : IDisposable return new ClaudeDoDbContext(opts); } - private sealed class TestDbFactory : IDbContextFactory - { - private readonly Func _create; - public TestDbFactory(Func create) => _create = create; - public ClaudeDoDbContext CreateDbContext() => _create(); - } private async Task SeedAsync() { diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/WorktreesOverviewBatchMergeTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/WorktreesOverviewBatchMergeTests.cs index 33472cd0..99851942 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/WorktreesOverviewBatchMergeTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/WorktreesOverviewBatchMergeTests.cs @@ -30,7 +30,7 @@ public class WorktreesOverviewBatchMergeTests Assert.False(row.IsConflict); } - private static WorktreesOverviewModalViewModel NewVm(IMergeCoordinator? merge = null) => + private static WorktreesOverviewModalViewModel NewVm(MergeCoordinator? merge = null) => new(new ClaudeDo.Ui.Services.WorkerClient("http://127.0.0.1:1/hub"), () => null!, merge ?? new ClaudeDo.Ui.Services.MergeCoordinator()); diff --git a/tests/ClaudeDo.Ui.Tests/ViewModels/WorktreesOverviewReconcileTickTests.cs b/tests/ClaudeDo.Ui.Tests/ViewModels/WorktreesOverviewReconcileTickTests.cs index 40209467..e9d56ba2 100644 --- a/tests/ClaudeDo.Ui.Tests/ViewModels/WorktreesOverviewReconcileTickTests.cs +++ b/tests/ClaudeDo.Ui.Tests/ViewModels/WorktreesOverviewReconcileTickTests.cs @@ -21,11 +21,6 @@ public class WorktreesOverviewReconcileTickTests => Task.FromResult(new MergeTargetsDto("main", new[] { "main" }, "chore(list): merge t")); } - private sealed class NoopMergeCoordinator : IMergeCoordinator - { - public Task ResolveConflictAsync(string taskId, string targetBranch) => Task.CompletedTask; - } - private static WorktreeOverviewDto Wt(string taskId, WorktreeState state = WorktreeState.Active) => new(taskId, $"Task {taskId}", TaskStatus.WaitingForReview, "L1", "Work", $@"C:\wt\{taskId}", $"claudedo/{taskId}", "base0", state, "+1 -0", @@ -35,7 +30,8 @@ public class WorktreesOverviewReconcileTickTests { var worker = new FakeWorker { Worktrees = { Wt("a"), Wt("b"), Wt("c") } }; var vm = new WorktreesOverviewModalViewModel( - worker, () => throw new InvalidOperationException("no diff vm in this test"), new NoopMergeCoordinator()); + worker, () => throw new InvalidOperationException("no diff vm in this test"), + new ClaudeDo.Ui.Services.MergeCoordinator()); vm.Configure("L1", "Work"); await vm.LoadAsync(); return (vm, worker);