diff options
Diffstat (limited to 'tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerProfileImageTests.cs')
| -rw-r--r-- | tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerProfileImageTests.cs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerProfileImageTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerProfileImageTests.cs index cb714a4014..778b888735 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerProfileImageTests.cs +++ b/tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerProfileImageTests.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Linq; using System.Threading; using System.Threading.Tasks; using Jellyfin.Database.Implementations; @@ -92,6 +93,28 @@ namespace Jellyfin.Server.Implementations.Tests.Users } [Fact] + public async Task UpdateUserAsync_DoesNotLeaveOrphanedPermissionsOrPreferences() + { + var user = await _userManager.CreateUserAsync("updateduser"); + var permissionCount = user.Permissions.Count; + var preferenceCount = user.Preferences.Count; + + user.LastActivityDate = DateTime.UtcNow; + await _userManager.UpdateUserAsync(user); + await _userManager.UpdateUserAsync(user); + + await using var context = CreateDbContext(); + Assert.Empty(await context.Permissions + .Where(permission => !permission.UserId.HasValue) + .ToListAsync(TestContext.Current.CancellationToken)); + Assert.Empty(await context.Preferences + .Where(preference => !preference.UserId.HasValue) + .ToListAsync(TestContext.Current.CancellationToken)); + Assert.Equal(permissionCount, await context.Permissions.CountAsync(TestContext.Current.CancellationToken)); + Assert.Equal(preferenceCount, await context.Preferences.CountAsync(TestContext.Current.CancellationToken)); + } + + [Fact] public async Task ClearProfileImageAsync_WhenInMemoryImageHasTemporaryKey_RemovesPersistedImage() { var user = await _userManager.CreateUserAsync("profileimageuser"); |
