test(ui): follow the relocated settings gear
This commit is contained in:
+8
-6
@@ -13,20 +13,22 @@
|
||||
`82609a5`.
|
||||
- `NotificationServiceTests` runs tint assertions with real theme resources and uses the current
|
||||
`Brush.ErrorContainer` token; committed as `caf91e6`.
|
||||
- `ScoreboardSimulationTests` now checks the shared `Helpers/DevBuild.cs` compile-time gate; focused
|
||||
test passes. This task is ready to commit.
|
||||
- Clean app build is 0 warnings. Full suite: 4 failed / 518 passed of 522; remaining failures are
|
||||
- `ScoreboardSimulationTests` now checks the shared `Helpers/DevBuild.cs` compile-time gate;
|
||||
committed as `0e1f948`.
|
||||
- `UiShellTests` now checks the orange Settings gear on the preview rail and the EDIT/session
|
||||
ordering in the top bar; focused test passes. This task is ready to commit.
|
||||
- Clean app build is 0 warnings. Full suite: 3 failed / 519 passed of 522; remaining failures are
|
||||
being handled one task and one local commit at a time.
|
||||
|
||||
## Next action
|
||||
|
||||
Commit the scoreboard-simulation guard update, then take the next remaining failure. Do not push
|
||||
absent a milestone/checkpoint request.
|
||||
Commit the UiShell assertion update, then take the next remaining failure. 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` cannot pass until the remaining 4 suite failures are resolved; scope checks are run
|
||||
- `verify.sh` cannot pass until the remaining 3 suite failures are resolved; scope checks are run
|
||||
separately when that gate exits early.
|
||||
- Any integration test constructing `MainWindow` must set `LayoutPathOverride` to a temporary DB
|
||||
and clear it in `finally`.
|
||||
|
||||
@@ -75,17 +75,25 @@ public class UiShellTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Edit_sits_beside_the_orange_gear()
|
||||
public void Settings_gear_is_orange_on_the_preview_rail_and_EDIT_precedes_the_session_cluster()
|
||||
{
|
||||
var topBar = SourceAssert.Text("Controls", "TopBar.xaml");
|
||||
var preview = SourceAssert.Text("Controls", "PreviewPane.xaml");
|
||||
|
||||
// The gear is a LlamaCasty control, so it wears the app's orange (not a muted icon grey).
|
||||
Assert.Contains("Fill=\"{StaticResource Brush.Attention}\" Width=\"18\" Height=\"18\"", topBar);
|
||||
// The settings gear moved from the top bar to the first orange preview-rail tab.
|
||||
var settingsTooltip = preview.IndexOf("ToolTip=\"Settings\"", System.StringComparison.Ordinal);
|
||||
Assert.True(settingsTooltip >= 0, "the Settings gear tab is missing from the preview rail");
|
||||
var gearStart = preview.LastIndexOf("<Border ", settingsTooltip, System.StringComparison.Ordinal);
|
||||
var gearEnd = preview.IndexOf("</Border>", settingsTooltip, System.StringComparison.Ordinal);
|
||||
Assert.True(gearStart >= 0 && gearEnd > settingsTooltip, "the Settings tab has no bordered gear surface");
|
||||
var gear = preview[gearStart..gearEnd];
|
||||
Assert.Contains("Background=\"{StaticResource Brush.Attention}\"", gear);
|
||||
Assert.Contains("MouseLeftButtonUp=\"SettingsTab_Click\"", gear);
|
||||
Assert.DoesNotContain("ToolTip=\"Settings\"", topBar);
|
||||
|
||||
// EDIT lives in the LEFT cluster, immediately after the gear — not in the centre session
|
||||
// cluster (creator ruling 2026-10-30).
|
||||
// EDIT stays in the left brand cluster, before the centre session cluster.
|
||||
var edit = topBar.IndexOf("EditingActive", System.StringComparison.Ordinal);
|
||||
var centre = topBar.IndexOf("Grid.Column=\"1\"", System.StringComparison.Ordinal);
|
||||
var centre = topBar.IndexOf("<StackPanel Grid.Column=\"1\"", System.StringComparison.Ordinal);
|
||||
Assert.True(edit > 0 && centre > edit,
|
||||
"the EDIT toggle must appear before the centre (session) cluster");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user