feat: planning sessions foundation (Plan A) #4
@@ -282,4 +282,29 @@ public sealed class TaskRepositoryPlanningTests : IDisposable
|
||||
|
||||
Assert.False(ok);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetNextQueuedAgentTask_SkipsDraftPlanningPlanned()
|
||||
{
|
||||
var listId = await CreateListAsync();
|
||||
var agentTagId = await _tags.GetOrCreateAsync("agent");
|
||||
|
||||
async Task<TaskEntity> T(TaskStatus s, bool withTag, string? parent = null)
|
||||
{
|
||||
var t = MakeTask(listId, s, parentId: parent);
|
||||
await _tasks.AddAsync(t);
|
||||
if (withTag) await _tasks.AddTagAsync(t.Id, agentTagId);
|
||||
return t;
|
||||
}
|
||||
|
||||
var planning = await T(TaskStatus.Planning, withTag: true);
|
||||
var planned = await T(TaskStatus.Planned, withTag: true);
|
||||
var draft = await T(TaskStatus.Draft, withTag: true, parent: planning.Id);
|
||||
var queued = await T(TaskStatus.Queued, withTag: true);
|
||||
|
||||
var picked = await _tasks.GetNextQueuedAgentTaskAsync(DateTime.UtcNow);
|
||||
|
||||
Assert.NotNull(picked);
|
||||
Assert.Equal(queued.Id, picked!.Id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user