feat(worker): Ticket-Status-Rueckmeldung ueber TaskStateService

This commit is contained in:
mika kuns
2026-08-27 12:53:38 +02:00
parent 1065278021
commit 5aafeb6c3d
7 changed files with 418 additions and 26 deletions
@@ -0,0 +1,46 @@
using ClaudeDo.Worker.Tickets;
using TaskStatus = ClaudeDo.Data.Models.TaskStatus;
namespace ClaudeDo.Worker.Tests.Tickets;
public sealed class TicketStatusMapTests
{
[Theory]
[InlineData(TaskStatus.Running, 2)]
[InlineData(TaskStatus.WaitingForReview, 2)]
[InlineData(TaskStatus.Done, 3)]
public void Maps_the_three_states_we_report(TaskStatus status, int expected)
=> Assert.Equal(expected, TicketStatusMap.ToTicketStatus(status));
[Theory]
[InlineData(TaskStatus.Idle)]
[InlineData(TaskStatus.Queued)]
[InlineData(TaskStatus.WaitingForChildren)]
[InlineData(TaskStatus.Failed)]
[InlineData(TaskStatus.Cancelled)]
public void Everything_else_writes_nothing(TaskStatus status)
=> Assert.Null(TicketStatusMap.ToTicketStatus(status));
[Fact]
public void Never_writes_Offen()
{
foreach (var status in Enum.GetValues<TaskStatus>())
Assert.NotEqual(1, TicketStatusMap.ToTicketStatus(status));
}
[Theory]
[InlineData("bandel:1234", 1234)]
[InlineData("BANDEL:7", 7)]
public void Parses_a_bandel_ref(string reference, int expected)
=> Assert.Equal(expected, TicketStatusMap.ParseBandelTicketId(reference));
[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("1234")]
[InlineData("jira:ABC-1")]
[InlineData("bandel:")]
[InlineData("bandel:abc")]
public void Rejects_anything_else(string? reference)
=> Assert.Null(TicketStatusMap.ParseBandelTicketId(reference));
}