From 169a3e5d34a26ce7bc6f3d4a4513ab3bdc99e8e6 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Sun, 27 Sep 2026 16:30:35 -0400 Subject: Backport pull request #18058 from jellyfin/release-12.z Fix test concurrency Original-merge: 3ca0b6f23adbf622c7c644a2c386b91d06ee06a9 Merged-by: crobibero Backported-by: Cody Robibero --- tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs | 7 +++++++ tests/Jellyfin.Controller.Tests/Entities/PlaylistTests.cs | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs b/tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs index e072bccb82..c67717e2fa 100644 --- a/tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs +++ b/tests/Jellyfin.Controller.Tests/Entities/BaseItemTests.cs @@ -40,15 +40,21 @@ public class BaseItemTests var previousLibrary = BaseItem.LibraryManager; var previousRepository = BaseItem.ItemRepository; var previousLogger = BaseItem.Logger; + var previousMediaSourceManager = BaseItem.MediaSourceManager; var library = new Mock(MockBehavior.Strict); var repository = new Mock(MockBehavior.Strict); var directory = new Mock(); directory.Setup(d => d.IsAccessible(It.IsAny())).Returns(true); + + // IsLibraryFolderAccessible reads FileNameWithoutExtension, which resolves the path protocol + var mediaSourceManager = new Mock(); + mediaSourceManager.Setup(x => x.GetPathProtocol(It.IsAny())).Returns(MediaProtocol.File); try { BaseItem.LibraryManager = library.Object; BaseItem.ItemRepository = repository.Object; BaseItem.Logger = Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance; + BaseItem.MediaSourceManager = mediaSourceManager.Object; var folder = new FailingEnumerationFolder(failAfterFirstChild, accessDenied) { Id = Guid.NewGuid(), @@ -64,6 +70,7 @@ public class BaseItemTests BaseItem.LibraryManager = previousLibrary; BaseItem.ItemRepository = previousRepository; BaseItem.Logger = previousLogger; + BaseItem.MediaSourceManager = previousMediaSourceManager; } } diff --git a/tests/Jellyfin.Controller.Tests/Entities/PlaylistTests.cs b/tests/Jellyfin.Controller.Tests/Entities/PlaylistTests.cs index 70da5eafe5..1794469359 100644 --- a/tests/Jellyfin.Controller.Tests/Entities/PlaylistTests.cs +++ b/tests/Jellyfin.Controller.Tests/Entities/PlaylistTests.cs @@ -9,14 +9,21 @@ using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Playlists; -using MediaBrowser.Model.Querying; using Moq; using Xunit; namespace Jellyfin.Controller.Tests.Entities; -public class PlaylistTests +[Collection("LibraryManagerTests")] +public sealed class PlaylistTests : IDisposable { + private readonly ILibraryManager? _previousLibraryManager = BaseItem.LibraryManager; + + public void Dispose() + { + BaseItem.LibraryManager = _previousLibraryManager; + } + [Fact] public void IsVisible_PlaylistWithNothingLeftInIt_IsHidden() { -- cgit v1.2.3