test(ui): align top bar mode guard with live decision

This commit is contained in:
2026-11-02 11:43:57 -08:00
parent c856d11fb5
commit 264a90dae8
2 changed files with 16 additions and 17 deletions
+13 -15
View File
@@ -1,25 +1,23 @@
# HANDOFF — 2026-11-02 (test failure follow-up) # HANDOFF — 2026-11-02 (Logs tab + test sweep)
## State ## State
- `main`; local only, not pushed. Logs tabs: `9fa06c6`; YPP fixture: `3985a41`. - `main`; all work is committed locally, not pushed.
- Stale test assumptions corrected: scoreboard pill `221b816`, property hierarchy `91e308e`, geometry - Non-edit left panel has Live Chat and Logs tabs. Logs shows the newest 500 AppLog entries from
gate `82609a5`, notification theme `caf91e6`, dev-build gate `0e1f948`, Settings gear `e6a7147`. this process only; file format and rotation are unchanged. Feature commit: `9fa06c6`.
- `MicBayTests` now expects the designed 0 dB maximum; committed as `c9bd7e6`. - The 13 failures from the prior full-suite run were resolved in separate focused commits; see
- `PillRadioTests` now explicitly sets EDIT off for its signed-out Go Live assertion; focused test `git log` for each test-failure task.
passes. This task is ready to commit. - `./scripts/verify.sh` passes: clean app build, 0 warnings, 522/522 tests, scope check.
- Clean app build is 0 warnings. Full suite: 1 failed / 521 passed of 522.
## Next action ## Next action
Commit the PillRadio setup update, then resolve the last remaining test failure. Do not push absent Day 1 queued item: SystemMessage + MessageCenter strip. Keep one integration test per change. Do not
a milestone/checkpoint request. push absent a milestone/checkpoint request.
## Landmines ## Landmines
- Build/test with Windows `dotnet.exe`; the full suite can hang in WASAPI teardown. - Build/test with Windows `dotnet.exe`; full suite can hang in WASAPI teardown.
- `verify.sh` remains red until the last failure is fixed; run scope-check separately when - Any integration test constructing `MainWindow` must use a temporary `LayoutPathOverride` and
it exits early. clear it in `finally`.
- Any integration test constructing `MainWindow` must use a temporary `LayoutPathOverride` and clear - Debug-only `InternalsVisibleTo` remains an outstanding release check.
it in `finally`.
- Bundled FFmpeg stays outside the single-file exe (`ExcludeFromSingleFile="true"`). - Bundled FFmpeg stays outside the single-file exe (`ExcludeFromSingleFile="true"`).
+2 -1
View File
@@ -44,6 +44,7 @@ public sealed class TopBarModeTests
// The dev machine may hold a real saved OAuth session (loads synchronously // The dev machine may hold a real saved OAuth session (loads synchronously
// during the ctor), so the sign-in state is forced deterministically. // during the ctor), so the sign-in state is forced deterministically.
vm.IsConnected = false; 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", // Default (nothing armed) = the Record world: Go says "Start Recording",
// no Test — but the account zone is app-level and stays (signed out → // 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.IsRecording = false;
vm.StreamStatus = StreamStatus.Streaming; vm.StreamStatus = StreamStatus.Streaming;
Assert.Equal("LIVE", vm.RunningText); Assert.Equal("LIVE", vm.RunningText);
Assert.Equal("#e94560", vm.RunningDotBrush); Assert.Equal("#ff5451", vm.RunningDotBrush);
vm.IsTestStream = true; vm.IsTestStream = true;
Assert.Equal("TEST", vm.RunningText); Assert.Equal("TEST", vm.RunningText);
Assert.Equal("#9c6f1c", vm.RunningDotBrush); Assert.Equal("#9c6f1c", vm.RunningDotBrush);