From c02a4cf871282fe725279a14afc50e24c507ed20 Mon Sep 17 00:00:00 2001 From: mika kuns Date: Tue, 25 Aug 2026 08:31:11 +0200 Subject: [PATCH] test(prime): restore the PrimeScheduleRepository tests dropped in 022eaf38 --- .../PrimeScheduleRepositoryTests.cs | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/tests/ClaudeDo.Worker.Tests/Repositories/PrimeScheduleRepositoryTests.cs b/tests/ClaudeDo.Worker.Tests/Repositories/PrimeScheduleRepositoryTests.cs index 13fbcdc4..1475ae8e 100644 --- a/tests/ClaudeDo.Worker.Tests/Repositories/PrimeScheduleRepositoryTests.cs +++ b/tests/ClaudeDo.Worker.Tests/Repositories/PrimeScheduleRepositoryTests.cs @@ -18,6 +18,75 @@ public class PrimeScheduleRepositoryTests : IDisposable Kind = kind, }; + [Fact] + public async Task Upsert_Then_List_RoundTrips() + { + var id = Guid.NewGuid(); + using (var ctx = _db.CreateContext()) + { + await new PrimeScheduleRepository(ctx).UpsertAsync(new PrimeScheduleEntity + { + Id = id, + Days = PrimeDays.Weekdays, + TimeOfDay = new TimeSpan(7, 0, 0), + Enabled = true, + CreatedAt = DateTimeOffset.UtcNow, + }); + } + + using var read = _db.CreateContext(); + var rows = await new PrimeScheduleRepository(read).ListAsync(); + Assert.Single(rows); + Assert.Equal(id, rows[0].Id); + Assert.Equal(new TimeSpan(7, 0, 0), rows[0].TimeOfDay); + Assert.Equal(PrimeDays.Weekdays, rows[0].Days); + } + + [Fact] + public async Task UpdateLastRunAt_Persists() + { + var id = Guid.NewGuid(); + var when = new DateTimeOffset(2026, 5, 5, 7, 1, 0, TimeSpan.FromHours(2)); + using (var ctx = _db.CreateContext()) + { + await new PrimeScheduleRepository(ctx).UpsertAsync(new PrimeScheduleEntity + { + Id = id, + Days = PrimeDays.Weekdays, + TimeOfDay = new TimeSpan(7, 0, 0), + Enabled = true, + CreatedAt = DateTimeOffset.UtcNow, + }); + } + using (var ctx = _db.CreateContext()) + await new PrimeScheduleRepository(ctx).UpdateLastRunAsync(id, when); + + using var read = _db.CreateContext(); + var row = await new PrimeScheduleRepository(read).GetAsync(id); + Assert.NotNull(row); + Assert.Equal(when, row!.LastRunAt); + } + + [Fact] + public async Task Delete_Removes_Row() + { + var id = Guid.NewGuid(); + using (var ctx = _db.CreateContext()) + await new PrimeScheduleRepository(ctx).UpsertAsync(new PrimeScheduleEntity + { + Id = id, + Days = PrimeDays.All, + TimeOfDay = TimeSpan.Zero, + Enabled = true, + CreatedAt = DateTimeOffset.UtcNow, + }); + using (var ctx = _db.CreateContext()) + await new PrimeScheduleRepository(ctx).DeleteAsync(id); + + using var read = _db.CreateContext(); + Assert.Empty(await new PrimeScheduleRepository(read).ListAsync()); + } + [Fact] public void Kind_defaults_to_ping_on_a_new_entity() {