Fix SchedulesDirect image limit recognition

This commit is contained in:
Shadowghost
2026-07-15 17:43:27 +02:00
parent f8771b52ec
commit 2bac9a8f0c
3 changed files with 43 additions and 0 deletions
@@ -175,6 +175,30 @@ namespace Jellyfin.LiveTv.Tests.SchedulesDirect
Assert.Equal("Series", showImagesDtos[0].Data[0].Tier);
}
/// <summary>
/// /metadata/programs response where the daily image limit is hit mid-batch,
/// so individual entries carry an error code inside an otherwise successful response.
/// </summary>
[Fact]
public void Deserialize_Metadata_Programs_Image_Limit_Response_Success()
{
var bytes = File.ReadAllBytes("Test Data/SchedulesDirect/metadata_programs_image_limit_response.json");
var showImagesDtos = JsonSerializer.Deserialize<IReadOnlyList<ShowImagesDto>>(bytes, _jsonOptions);
Assert.NotNull(showImagesDtos);
Assert.Equal(2, showImagesDtos!.Count);
// First entry is a normal result with image data and no error code.
Assert.Equal("SH00712240", showImagesDtos[0].ProgramId);
Assert.Null(showImagesDtos[0].Code);
Assert.Single(showImagesDtos[0].Data);
// Second entry is a per-entry trial image download limit error (SD code 5003).
Assert.Equal("SH00712241", showImagesDtos[1].ProgramId);
Assert.Equal((int)SdErrorCode.MaxImageDownloadsTrial, showImagesDtos[1].Code);
Assert.Empty(showImagesDtos[1].Data);
}
/// <summary>
/// /headends response.
/// </summary>
@@ -0,0 +1 @@
[{"programID":"SH00712240","data":[{"width":"135","height":"180","uri":"assets/p282288_b_v2_aa.jpg","size":"Sm","aspect":"3x4","category":"Banner-L3","text":"yes","primary":"true","tier":"Series"}]},{"programID":"SH00712241","code":5003,"message":"Image download limit exceeded. Try again tomorrow."}]