improve Frontend
This commit is contained in:
@@ -227,6 +227,96 @@ public sealed class TaskRepositoryTests : IDisposable
|
||||
Assert.Null(after.Result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task AddAsync_AssignsDense_PerList_SortOrder()
|
||||
{
|
||||
var listA = await CreateListAsync();
|
||||
var listB = await CreateListAsync();
|
||||
|
||||
var a0 = MakeTask(listA); await _tasks.AddAsync(a0);
|
||||
var a1 = MakeTask(listA); await _tasks.AddAsync(a1);
|
||||
var b0 = MakeTask(listB); await _tasks.AddAsync(b0);
|
||||
var a2 = MakeTask(listA); await _tasks.AddAsync(a2);
|
||||
|
||||
var reloadA0 = await _tasks.GetByIdAsync(a0.Id);
|
||||
var reloadA1 = await _tasks.GetByIdAsync(a1.Id);
|
||||
var reloadA2 = await _tasks.GetByIdAsync(a2.Id);
|
||||
var reloadB0 = await _tasks.GetByIdAsync(b0.Id);
|
||||
|
||||
Assert.Equal(0, reloadA0!.SortOrder);
|
||||
Assert.Equal(1, reloadA1!.SortOrder);
|
||||
Assert.Equal(2, reloadA2!.SortOrder);
|
||||
Assert.Equal(0, reloadB0!.SortOrder);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetByListIdAsync_OrdersBy_SortOrder()
|
||||
{
|
||||
var listId = await CreateListAsync();
|
||||
var t0 = MakeTask(listId); await _tasks.AddAsync(t0);
|
||||
var t1 = MakeTask(listId); await _tasks.AddAsync(t1);
|
||||
var t2 = MakeTask(listId); await _tasks.AddAsync(t2);
|
||||
|
||||
await _tasks.ReorderAsync(listId, new[] { t2.Id, t0.Id, t1.Id });
|
||||
|
||||
var list = await _tasks.GetByListIdAsync(listId);
|
||||
Assert.Equal(new[] { t2.Id, t0.Id, t1.Id }, list.Select(t => t.Id).ToArray());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ReorderAsync_Renumbers_Dense()
|
||||
{
|
||||
var listId = await CreateListAsync();
|
||||
var t0 = MakeTask(listId); await _tasks.AddAsync(t0);
|
||||
var t1 = MakeTask(listId); await _tasks.AddAsync(t1);
|
||||
var t2 = MakeTask(listId); await _tasks.AddAsync(t2);
|
||||
|
||||
await _tasks.ReorderAsync(listId, new[] { t1.Id, t2.Id, t0.Id });
|
||||
|
||||
var r0 = await _tasks.GetByIdAsync(t0.Id);
|
||||
var r1 = await _tasks.GetByIdAsync(t1.Id);
|
||||
var r2 = await _tasks.GetByIdAsync(t2.Id);
|
||||
|
||||
Assert.Equal(2, r0!.SortOrder);
|
||||
Assert.Equal(0, r1!.SortOrder);
|
||||
Assert.Equal(1, r2!.SortOrder);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task ReorderAsync_IgnoresIds_FromOtherLists()
|
||||
{
|
||||
var listA = await CreateListAsync();
|
||||
var listB = await CreateListAsync();
|
||||
var a0 = MakeTask(listA); await _tasks.AddAsync(a0);
|
||||
var b0 = MakeTask(listB); await _tasks.AddAsync(b0);
|
||||
|
||||
// b0 does not belong to listA and should not be renumbered there.
|
||||
await _tasks.ReorderAsync(listA, new[] { b0.Id, a0.Id });
|
||||
|
||||
var reloadB = await _tasks.GetByIdAsync(b0.Id);
|
||||
Assert.Equal(0, reloadB!.SortOrder);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetNextQueuedAgentTaskAsync_Picks_ByUserSortOrder()
|
||||
{
|
||||
var listId = await CreateListAsync();
|
||||
var agentTagId = await _tags.GetOrCreateAsync("agent");
|
||||
await _lists.AddTagAsync(listId, agentTagId);
|
||||
|
||||
// created in order first, second; then user reorders to put second on top.
|
||||
var first = MakeTask(listId, createdAt: DateTime.UtcNow.AddMinutes(-10));
|
||||
var second = MakeTask(listId, createdAt: DateTime.UtcNow);
|
||||
await _tasks.AddAsync(first);
|
||||
await _tasks.AddAsync(second);
|
||||
|
||||
await _tasks.ReorderAsync(listId, new[] { second.Id, first.Id });
|
||||
|
||||
var picked = await _tasks.GetNextQueuedAgentTaskAsync(DateTime.UtcNow);
|
||||
Assert.NotNull(picked);
|
||||
Assert.Equal(second.Id, picked!.Id);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetEffectiveTagsAsync_Returns_Union_Of_ListTags_And_TaskTags()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user