Enhance metadata handling by introducing ShowKind parameter across various components. Update SearchShowMetadataQuery and related handlers to support querying by show type, ensuring accurate metadata retrieval for series and films. Implement validation to prevent episodes from being associated with non-series shows. Update frontend API to include ShowKind in metadata search requests, improving overall functionality and user experience.
ci / build-backend (push) Successful in 3m42s
ci / build-frontend (push) Successful in 51s
ci / tests (push) Successful in 2m10s
ci / sonar (push) Successful in 6m40s

This commit is contained in:
Leonid Pershin
2026-07-26 22:29:16 +03:00
parent fdb0f321e4
commit b0740503bb
14 changed files with 327 additions and 40 deletions
@@ -50,6 +50,29 @@ public class FindMissingEpisodesTests
Assert.Equal([2, 3], s2.Missing);
}
[Fact]
public async Task Fails_ForNonSeries()
{
// У полнометражки сезонов нет, и запрос ушёл бы в /tv/{id} с идентификатором фильма.
var fixture = new TestDb();
var show = Show.Create("A", ShowKind.Single);
show.ApplyMetadata("tmdb", "123", null, 2000, null);
await using (var seed = fixture.New())
{
seed.Shows.Add(show);
await seed.SaveChangesAsync(CancellationToken.None);
}
var resolver = Substitute.For<IMetadataProviderResolver>();
await using var db = fixture.New();
var result = await new FindMissingEpisodesQueryHandler(db, resolver).Handle(
new FindMissingEpisodesQuery(show.Id),
CancellationToken.None
);
Assert.False(result.IsSuccess);
}
[Fact]
public async Task Fails_WhenNoLinkedSource()
{