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
- `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"`).
+3 -2
View File
@@ -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 */ }
}
}
}
}