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

View File

@ -281,15 +281,30 @@ namespace AccessQueueServiceTests
public async Task RequestAccess_ShouldShowCorrectRequestsAhead_WhenAccessRerequested(IAccessQueueRepo repo) public async Task RequestAccess_ShouldShowCorrectRequestsAhead_WhenAccessRerequested(IAccessQueueRepo repo)
{ {
CreateService(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()); await _accessService.RequestAccess(Guid.NewGuid());
} }
var id = Guid.NewGuid();
var response = await _accessService.RequestAccess(id); var id1 = Guid.NewGuid();
Assert.Equal(3, response.RequestsAhead); var id2 = Guid.NewGuid();
response = await _accessService.RequestAccess(id); var id3 = Guid.NewGuid();
Assert.Equal(3, response?.RequestsAhead);
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);
} }
} }
} }