From 264a90dae8af967719b9b562e45d978916d2ed65 Mon Sep 17 00:00:00 2001 From: gramps Date: Mon, 2 Nov 2026 11:43:57 -0800 Subject: [PATCH] test(ui): align top bar mode guard with live decision --- HANDOFF.md | 28 +++++++++++++--------------- ytLive.Tests/TopBarModeTests.cs | 5 +++-- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/HANDOFF.md b/HANDOFF.md index 5065348..c2716db 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -1,25 +1,23 @@ -# HANDOFF — 2026-11-02 (test failure follow-up) +# HANDOFF — 2026-11-02 (Logs tab + test sweep) ## State -- `main`; local only, not pushed. Logs tabs: `9fa06c6`; YPP fixture: `3985a41`. -- Stale test assumptions corrected: scoreboard pill `221b816`, property hierarchy `91e308e`, geometry - gate `82609a5`, notification theme `caf91e6`, dev-build gate `0e1f948`, Settings gear `e6a7147`. -- `MicBayTests` now expects the designed 0 dB maximum; committed as `c9bd7e6`. -- `PillRadioTests` now explicitly sets EDIT off for its signed-out Go Live assertion; focused test - passes. This task is ready to commit. -- Clean app build is 0 warnings. Full suite: 1 failed / 521 passed of 522. +- `main`; all work is committed locally, not pushed. +- Non-edit left panel has Live Chat and Logs tabs. Logs shows the newest 500 AppLog entries from + this process only; file format and rotation are unchanged. Feature commit: `9fa06c6`. +- The 13 failures from the prior full-suite run were resolved in separate focused commits; see + `git log` for each test-failure task. +- `./scripts/verify.sh` passes: clean app build, 0 warnings, 522/522 tests, scope check. ## Next action -Commit the PillRadio setup update, then resolve the last remaining test failure. Do not push absent -a milestone/checkpoint request. +Day 1 queued item: SystemMessage + MessageCenter strip. Keep one integration test per change. Do not +push absent a milestone/checkpoint request. ## Landmines -- Build/test with Windows `dotnet.exe`; the full suite can hang in WASAPI teardown. -- `verify.sh` remains red until the last failure is fixed; run scope-check separately when - it exits early. -- Any integration test constructing `MainWindow` must use a temporary `LayoutPathOverride` and clear - it in `finally`. +- Build/test with Windows `dotnet.exe`; full suite can hang in WASAPI teardown. +- Any integration test constructing `MainWindow` must use a temporary `LayoutPathOverride` and + clear it in `finally`. +- Debug-only `InternalsVisibleTo` remains an outstanding release check. - Bundled FFmpeg stays outside the single-file exe (`ExcludeFromSingleFile="true"`). diff --git a/ytLive.Tests/TopBarModeTests.cs b/ytLive.Tests/TopBarModeTests.cs index b674288..701c6c7 100644 --- a/ytLive.Tests/TopBarModeTests.cs +++ b/ytLive.Tests/TopBarModeTests.cs @@ -44,6 +44,7 @@ public sealed class TopBarModeTests // The dev machine may hold a real saved OAuth session (loads synchronously // during the ctor), so the sign-in state is forced deterministically. vm.IsConnected = false; + vm.EditingActive = false; // EDIT off selects Go Live instead of Test Stream. // Default (nothing armed) = the Record world: Go says "Start Recording", // no Test — but the account zone is app-level and stays (signed out → @@ -94,7 +95,7 @@ public sealed class TopBarModeTests vm.IsRecording = false; vm.StreamStatus = StreamStatus.Streaming; Assert.Equal("LIVE", vm.RunningText); - Assert.Equal("#e94560", vm.RunningDotBrush); + Assert.Equal("#ff5451", vm.RunningDotBrush); vm.IsTestStream = true; Assert.Equal("TEST", vm.RunningText); Assert.Equal("#9c6f1c", vm.RunningDotBrush); @@ -106,4 +107,4 @@ public sealed class TopBarModeTests try { File.Delete(tempDb); } catch { /* best-effort cleanup */ } } } -} \ No newline at end of file +}