diff options
| author | m0g3r <87276771+m0g3r@users.noreply.github.com> | 2026-08-18 18:16:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-18 18:16:48 +0200 |
| commit | 46be43ad245d8f01026bf08f7d3a57c8c726a826 (patch) | |
| tree | 97113344faba948e8638100b5615798ce37da4ad /tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerProfileImageTests.cs | |
| parent | 3fe35fcbc1f7d2677e9c8d7be324db0d6f2a1f63 (diff) | |
Prevent orphaned user permissions and preferences (#17643)
Prevent orphaned user permissions and preferences
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"); |
