test(auto-theme): #79 V2 — simulate sunset in a VM (was mis-framed V3)
All checks were successful
Check / eval (push) Successful in 3m53s
All checks were successful
Check / eval (push) Successful in 3m53s
Bernardo rightly pushed back on deferring #79 to a real session: a simulated sunset IS VM-testable. Add checks.auto-theme, a runNixOSTest that installs nomarchy-theme-sync, points NOMARCHY_DEFAULT_THEMES at the presets, stubs the rebuild via NOMARCHY_REBUILD (a marker), configures the day/night pair + schedule, then WALKS THE VM CLOCK across the boundary: 19:55 -> 20:05 -> 20:06 -> next-day 07:30, asserting the active theme goes summer-day -> night (1 rebuild) -> night (idempotent, still 1) -> day (2 rebuilds). This isolates the auto decision + apply + rebuild-trigger; the actual home-manager switch is stubbed (that generic apply path is exercised by every manual theme change). The only on-hardware residual is the user timer firing on its OnCalendar schedule, which systemd-analyze validates. #79 drops its [blocked:hw] tag — it's V2-verified. ROADMAP updated; lesson recorded in MEMORY (don't default timer/session features to V3: stub the generic step, simulate the clock). Verification: V2 PASS (nix build .#checks.x86_64-linux.auto-theme, fresh, exit 0); V0 flake check green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -298,8 +298,13 @@ Design/decision records and a running log of shipped work (items marked
|
||||
reuses it verbatim. Periodic (not exact sunrise/sunset timers) for
|
||||
robustness to suspend/DST; the idempotent `auto` keeps ticks cheap. Enable
|
||||
rebuilds once (installs the timer + `auto --force`); disable is instant
|
||||
(the flag flips and `auto` self-gates). Live timer→switch is a real-session
|
||||
(V3) check.
|
||||
(the flag flips and `auto` self-gates). **V2:** `checks.auto-theme` moves
|
||||
the VM clock across a configured sunset/sunrise and asserts the theme flips
|
||||
day→night→day with the right rebuild count (idempotent between) — the
|
||||
`home-manager switch` itself is stubbed via `NOMARCHY_REBUILD` (that
|
||||
generic apply path is exercised by every manual theme change). The only
|
||||
on-hardware residual is the live user timer firing on its `OnCalendar`
|
||||
schedule (the schedule is `systemd-analyze`-validated).
|
||||
- **Nicer shell out of the box:** ✓ zsh is the default login shell, with a
|
||||
starship prompt themed from the JSON, autosuggestions + syntax
|
||||
highlighting, and modern-CLI ergonomics — `cat`→bat (theme "ansi", so it
|
||||
|
||||
Reference in New Issue
Block a user