feat(392): expose ProgramSchedule.padToNearestMinute on the REST API

This commit is contained in:
2026-07-23 08:03:31 +02:00
parent 75d5c385b2
commit 9ea2750cbf
23 changed files with 129 additions and 34 deletions
@@ -30,6 +30,55 @@ public class ProgramScheduleHandlerTests
[TearDown]
public async Task TearDown() => await _db.DisposeAsync();
[Test]
public async Task Create_and_update_persist_PadToNearestMinute()
{
var createHandler = new CreateProgramScheduleHandler(_db.Factory);
Either<BaseError, CreateProgramScheduleResult> createResult = await createHandler.Handle(
new CreateProgramSchedule(
"Pad Test",
KeepMultiPartEpisodesTogether: true,
TreatCollectionsAsShows: true,
ShuffleScheduleItems: false,
RandomStartPoint: false,
FixedStartTimeBehavior.Flexible,
PadToNearestMinute: 30),
CancellationToken.None);
int scheduleId = createResult.Match(Left: _ => throw new AssertionException("Expected a Right result"), Right: r => r.ProgramScheduleId);
await using (TvContext context = _db.CreateContext())
{
ProgramSchedule? schedule = await context.ProgramSchedules.FindAsync(scheduleId);
schedule.ShouldNotBeNull();
schedule.PadToNearestMinute.ShouldBe(30);
}
var updateHandler = new UpdateProgramScheduleHandler(_db.Factory, _worker);
Either<BaseError, UpdateProgramScheduleResult> updateResult = await updateHandler.Handle(
new UpdateProgramSchedule(
scheduleId,
"Pad Test",
KeepMultiPartEpisodesTogether: true,
TreatCollectionsAsShows: true,
ShuffleScheduleItems: false,
RandomStartPoint: false,
FixedStartTimeBehavior.Flexible,
PadToNearestMinute: null),
CancellationToken.None);
updateResult.IsRight.ShouldBeTrue();
await using (TvContext context = _db.CreateContext())
{
ProgramSchedule? schedule = await context.ProgramSchedules.FindAsync(scheduleId);
schedule.ShouldNotBeNull();
schedule.PadToNearestMinute.ShouldBeNull();
}
}
[Test]
public async Task Update_Should_Return_NotFoundError_When_Schedule_Missing()
{
@@ -125,7 +174,8 @@ public class ProgramScheduleHandlerTests
TreatCollectionsAsShows: true,
ShuffleScheduleItems: false,
RandomStartPoint: false,
FixedStartTimeBehavior.Flexible);
FixedStartTimeBehavior.Flexible,
PadToNearestMinute: null);
private static AddProgramScheduleItem MakeAdd(int scheduleId, CollectionType collectionType) =>
new(