Backport pull request #18278 from jellyfin/release-12.z

Compare local image dates with a one second tolerance

Original-merge: 2a59779ae9

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Cody Robibero <cody@robibe.ro>
This commit is contained in:
Shadowghost authored and Cody Robibero committed 2026-10-05 19:19:05 -04:00
1 parent 9c28aab413
commit a2bd48c1d2
3 files changed
+37 -4

No files matched your search

@@ -176,6 +176,37 @@ namespace Jellyfin.Providers.Tests.Manager
}
}
[Theory]
[InlineData(ImageType.Primary, 1)]
[InlineData(ImageType.Backdrop, 2)]
public void MergeImages_StoredTimeTruncatedToMicroseconds_NoChange(ImageType imageType, int imageCount)
{
// Regression test for https://github.com/jellyfin/jellyfin/issues/18274
var fileTime = new DateTime(2021, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddTicks(1234567);
var storedTime = fileTime.AddTicks(-(fileTime.Ticks % 10));
var fileSystem = new Mock<IFileSystem>();
fileSystem.Setup(fs => fs.GetLastWriteTimeUtc(It.IsAny<FileSystemMetadata>()))
.Returns(fileTime);
BaseItem.FileSystem = fileSystem.Object;
var item = GetItemWithImages(imageType, imageCount, true);
foreach (var image in item.GetImages(imageType))
{
image.DateModified = storedTime;
image.Height = 1;
image.Width = 1;
}
var images = GetImages(imageType, imageCount, true);
var itemImageProvider = GetItemImageProvider(null, fileSystem);
var changed = itemImageProvider.MergeImages(item, images, new ImageRefreshOptions(Mock.Of<IDirectoryService>()));
Assert.False(changed);
Assert.All(item.GetImages(imageType), image => Assert.Equal(1, image.Width));
}
[Theory]
[InlineData(ImageType.Primary, 0)]
[InlineData(ImageType.Primary, 1)]