From b15141547ec7d3c71dcec203cbac53d8c95f6435 Mon Sep 17 00:00:00 2001 From: Ike Kottlowski Date: Thu, 29 Jan 2026 21:39:55 -0500 Subject: [PATCH] test: update integration test to validate only confirmed users are updated as well as proper deletion of emergency access --- .../Repositories/EmergencyAccessRepository.cs | 4 ++-- .../EmergencyAccessRepositoryTests.cs | 21 +++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/Infrastructure.EntityFramework/Auth/Repositories/EmergencyAccessRepository.cs b/src/Infrastructure.EntityFramework/Auth/Repositories/EmergencyAccessRepository.cs index 1c12b5eb6d..66cf1e55e6 100644 --- a/src/Infrastructure.EntityFramework/Auth/Repositories/EmergencyAccessRepository.cs +++ b/src/Infrastructure.EntityFramework/Auth/Repositories/EmergencyAccessRepository.cs @@ -150,8 +150,8 @@ public class EmergencyAccessRepository : Repository ea.Status == EmergencyAccessStatusType.Confirmed) diff --git a/test/Infrastructure.IntegrationTest/Auth/Repositories/EmergencyAccessRepositoryTests.cs b/test/Infrastructure.IntegrationTest/Auth/Repositories/EmergencyAccessRepositoryTests.cs index 9877e8f84c..a00fc35cd8 100644 --- a/test/Infrastructure.IntegrationTest/Auth/Repositories/EmergencyAccessRepositoryTests.cs +++ b/test/Infrastructure.IntegrationTest/Auth/Repositories/EmergencyAccessRepositoryTests.cs @@ -69,7 +69,7 @@ public class EmergencyAccessRepositoriesTests SecurityStamp = "stamp", }); - var granteeUser2 = await userRepository.CreateAsync(new User + var invitedGranteeUser2 = await userRepository.CreateAsync(new User { Name = "Test Grantee User 2", Email = $"test+grantee{Guid.NewGuid()}@email.com", @@ -77,6 +77,9 @@ public class EmergencyAccessRepositoriesTests SecurityStamp = "stamp", }); + // The inmemory datetime has a precision issue, so we need to refresh the user to get the stored AccountRevisionDate + invitedGranteeUser2 = await userRepository.GetByIdAsync(invitedGranteeUser2.Id); + var granteeUser3 = await userRepository.CreateAsync(new User { Name = "Test Grantee User 3", @@ -95,7 +98,7 @@ public class EmergencyAccessRepositoriesTests var invitedEmergencyAccess = await emergencyAccessRepository.CreateAsync(new EmergencyAccess { GrantorId = grantorUser.Id, - GranteeId = granteeUser2.Id, + GranteeId = invitedGranteeUser2.Id, Status = EmergencyAccessStatusType.Invited, }); @@ -106,6 +109,7 @@ public class EmergencyAccessRepositoriesTests Status = EmergencyAccessStatusType.Accepted, }); + // Act await emergencyAccessRepository.DeleteManyAsync([confirmedEmergencyAccess.Id, invitedEmergencyAccess.Id, acceptedEmergencyAccess.Id]); @@ -115,15 +119,20 @@ public class EmergencyAccessRepositoriesTests Assert.Empty(grantorEmergencyAccess); // ensure Grantee records deleted - foreach (User grantee in (List)[confirmedGranteeUser1, granteeUser2, granteeUser3]) + foreach (var grantee in (List)[confirmedGranteeUser1, invitedGranteeUser2, granteeUser3]) { var granteeEmergencyAccess = await emergencyAccessRepository.GetManyDetailsByGranteeIdAsync(grantee.Id); Assert.Empty(granteeEmergencyAccess); } // Only the Status.Confirmed grantee's AccountRevisionDate should be updated - var updatedGrantee = await userRepository.GetByIdAsync(confirmedGranteeUser1.Id); - Assert.NotNull(updatedGrantee); - Assert.NotEqual(updatedGrantee.AccountRevisionDate, confirmedGranteeUser1.AccountRevisionDate); + var updatedConfirmedGrantee = await userRepository.GetByIdAsync(confirmedGranteeUser1.Id); + Assert.NotNull(updatedConfirmedGrantee); + Assert.NotEqual(updatedConfirmedGrantee.AccountRevisionDate, confirmedGranteeUser1.AccountRevisionDate); + + // Invited user should not have an updated AccountRevisionDate + var updatedInvitedGrantee = await userRepository.GetByIdAsync(invitedGranteeUser2.Id); + Assert.NotNull(updatedInvitedGrantee); + Assert.Equal(updatedInvitedGrantee.AccountRevisionDate, invitedGranteeUser2.AccountRevisionDate); } }