Fix #2 requestsAhead working fr this time

This commit is contained in:
henry 2025-05-12 23:38:25 -04:00
parent 295c91a05c
commit 1de9b57c5c
2 changed files with 23 additions and 7 deletions

View File

@ -71,6 +71,7 @@ namespace AccessQueueService.Services
var requestsAhead = _accessQueueRepo.GetRequestsAhead(userId);
if (requestsAhead == -1)
{
requestsAhead = _accessQueueRepo.GetQueueCount();
_accessQueueRepo.Enqueue(new AccessTicket
{
UserId = userId,
@ -81,7 +82,7 @@ namespace AccessQueueService.Services
return new AccessResponse
{
ExpiresOn = null,
RequestsAhead = _accessQueueRepo.GetQueueCount() - 1
RequestsAhead = requestsAhead
};
}
}

View File

@ -281,15 +281,30 @@ namespace AccessQueueServiceTests
public async Task RequestAccess_ShouldShowCorrectRequestsAhead_WhenAccessRerequested(IAccessQueueRepo repo)
{
CreateService(repo);
for (int i = 0; i < CAP_LIMIT + 3; i++)
for (int i = 0; i < CAP_LIMIT; i++)
{
await _accessService.RequestAccess(Guid.NewGuid());
}
var id = Guid.NewGuid();
var response = await _accessService.RequestAccess(id);
Assert.Equal(3, response.RequestsAhead);
response = await _accessService.RequestAccess(id);
Assert.Equal(3, response?.RequestsAhead);
var id1 = Guid.NewGuid();
var id2 = Guid.NewGuid();
var id3 = Guid.NewGuid();
var response1 = await _accessService.RequestAccess(id1);
var response2 = await _accessService.RequestAccess(id2);
var response3 = await _accessService.RequestAccess(id3);
Assert.Equal(0, response1.RequestsAhead);
Assert.Equal(1, response2.RequestsAhead);
Assert.Equal(2, response3.RequestsAhead);
response1 = await _accessService.RequestAccess(id1);
response2 = await _accessService.RequestAccess(id2);
response3 = await _accessService.RequestAccess(id3);
Assert.Equal(0, response1.RequestsAhead);
Assert.Equal(1, response2.RequestsAhead);
Assert.Equal(2, response3.RequestsAhead);
}
}
}