Files
ClaudeDo/tests/ClaudeDo.Worker.Tests/Runner/TaskRunTokenRegistryTests.cs
2026-06-04 15:50:06 +02:00

37 lines
959 B
C#

using ClaudeDo.Worker.Runner;
using Xunit;
namespace ClaudeDo.Worker.Tests.Runner;
public sealed class TaskRunTokenRegistryTests
{
[Fact]
public void Register_then_resolve_returns_taskId()
{
var reg = new TaskRunTokenRegistry();
reg.Register("tok", "task-1");
Assert.True(reg.TryResolve("tok", out var id));
Assert.Equal("task-1", id);
}
[Fact]
public void Unregister_removes_token()
{
var reg = new TaskRunTokenRegistry();
reg.Register("tok", "task-1");
reg.Unregister("tok");
Assert.False(reg.TryResolve("tok", out _));
}
[Fact]
public void GenerateToken_is_urlsafe_and_unique()
{
var a = TaskRunTokenRegistry.GenerateToken();
var b = TaskRunTokenRegistry.GenerateToken();
Assert.NotEqual(a, b);
Assert.DoesNotContain('+', a);
Assert.DoesNotContain('/', a);
Assert.DoesNotContain('=', a);
}
}