Skip to content

Latest commit

 

History

History
44 lines (30 loc) · 1.75 KB

File metadata and controls

44 lines (30 loc) · 1.75 KB

Testing

ChronosDesk uses xUnit in ChronosDesk.Core.Tests. The suite focuses on domain time logic, JSON persistence, and scheduler integration. UI, tray icons, and real Windows toasts are verified manually on Windows.

Run tests

From the repository root:

dotnet test ChronosDesk.sln -c Release

What is covered

Area Test classes What they prove
Persistence JsonReminderRepositoryTests Polymorphic JSON round-trip for all reminder types; atomic save leaves no .tmp file
One-shot domain OneShotReminderTests Active and already-fired trigger-time rules
Repeating domain RepeatingReminderTests Daily windows, grid alignment, post-fire intervals, midnight crossover
Burst domain BurstIntervalReminderTests Burst/break/completed phases, limits, pause/resume re-anchoring
Scheduler ReminderSchedulerTests Tick fires due reminders, respects play-sound flag, skips not-yet-due items, pause/resume through scheduler, save-failure callback

The scheduler accepts an injectable Func<DateTime> and exposes ProcessTickAsync so tests can drive ticks without a real timer.

What is not covered

  • WPF windows and code-behind layout
  • System tray icon behavior
  • Windows toast delivery and COM shortcut registration
  • Corrupt or hand-edited JSON recovery
  • Full PeriodicTimer background loop under load

Those gaps are intentional for a small desktop utility. See known limitations.

CI

GitHub Actions runs on windows-latest for pushes and pull requests to main and master:

dotnet build ChronosDesk.sln -c Release
dotnet test ChronosDesk.sln -c Release

See .github/workflows/ci.yml.