feat/planning-sessions-worker #7
@@ -53,6 +53,9 @@ public sealed class PlanningSessionManager
|
||||
return new PlanningSessionStartContext(taskId, list.WorkingDir, files);
|
||||
}
|
||||
|
||||
public Task<int> FinalizeAsync(string taskId, bool queueAgentTasks, CancellationToken ct)
|
||||
=> _tasks.FinalizePlanningAsync(taskId, queueAgentTasks, ct);
|
||||
|
||||
public async Task DiscardAsync(string taskId, CancellationToken ct)
|
||||
{
|
||||
var ok = await _tasks.DiscardPlanningAsync(taskId, ct);
|
||||
|
||||
@@ -160,6 +160,22 @@ public sealed class PlanningSessionManagerTests : IDisposable
|
||||
_sut.ResumeAsync(parent.Id, CancellationToken.None));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task FinalizeAsync_PromotesDraftsAndMarksPlanned()
|
||||
{
|
||||
var (listId, _) = await SeedListAsync();
|
||||
var parent = await SeedManualTaskAsync(listId);
|
||||
await _sut.StartAsync(parent.Id, CancellationToken.None);
|
||||
await _tasks.CreateChildAsync(parent.Id, "c1", null, null, null);
|
||||
await _tasks.CreateChildAsync(parent.Id, "c2", null, null, null);
|
||||
|
||||
var count = await _sut.FinalizeAsync(parent.Id, queueAgentTasks: true, CancellationToken.None);
|
||||
|
||||
Assert.Equal(2, count);
|
||||
var loaded = await _tasks.GetByIdAsync(parent.Id);
|
||||
Assert.Equal(TaskStatus.Planned, loaded!.Status);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DiscardAsync_DeletesSessionDirAndResetsTask()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user