From 19bf032a2ed1ad22f4419aba892011639e43d0d0 Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 23 Apr 2026 18:09:29 +0200 Subject: [PATCH] test(data): queue skips Planning/Planned/Draft --- .../TaskRepositoryPlanningTests.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/ClaudeDo.Worker.Tests/Repositories/TaskRepositoryPlanningTests.cs b/tests/ClaudeDo.Worker.Tests/Repositories/TaskRepositoryPlanningTests.cs index 648b97a..c95fe8e 100644 --- a/tests/ClaudeDo.Worker.Tests/Repositories/TaskRepositoryPlanningTests.cs +++ b/tests/ClaudeDo.Worker.Tests/Repositories/TaskRepositoryPlanningTests.cs @@ -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 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); + } }