test(scoreboard): check shared dev-build gate

This commit is contained in:
2026-11-02 11:28:11 -08:00
parent caf91e6564
commit 0e1f948189
2 changed files with 17 additions and 13 deletions
+11 -9
View File
@@ -8,23 +8,25 @@
- `ScoreboardPropertiesTests` now checks for the themed `PropertyPillCheck` style instead of stale - `ScoreboardPropertiesTests` now checks for the themed `PropertyPillCheck` style instead of stale
`YtCheckBox` markup; committed as `221b816`. `YtCheckBox` markup; committed as `221b816`.
- `PropertiesHierarchyTests` now checks shared styles and scopes the duplicate shape bindings to - `PropertiesHierarchyTests` now checks shared styles and scopes the duplicate shape bindings to
the Shape block; focused test passes. This task is ready to commit. the Shape block; committed as `91e308e`.
- `GeometryFieldWidthTests` now identifies the shared draggable-layer Geometry block; focused test - `GeometryFieldWidthTests` now identifies the shared draggable-layer Geometry block; committed as
passes. This task is ready to commit. `82609a5`.
- `NotificationServiceTests` now run tint assertions with the real theme resources and expect the - `NotificationServiceTests` runs tint assertions with real theme resources and uses the current
current `Brush.ErrorContainer` token; all 8 tests in that class pass. This task is ready to commit. `Brush.ErrorContainer` token; committed as `caf91e6`.
- Clean app build is 0 warnings. Full suite: 5 failed / 517 passed of 522; remaining failures are - `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
being handled one task and one local commit at a time. being handled one task and one local commit at a time.
## Next action ## Next action
Commit the notification tint test fix, then take the next remaining failure. Do not push absent a Commit the scoreboard-simulation guard update, then take the next remaining failure. Do not push
milestone/checkpoint request. 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`; the full suite can hang in WASAPI teardown.
- `verify.sh` cannot pass until the remaining 5 suite failures are resolved; scope checks are run - `verify.sh` cannot pass until the remaining 4 suite failures are resolved; scope checks are run
separately when that gate exits early. separately when that gate exits early.
- Any integration test constructing `MainWindow` must set `LayoutPathOverride` to a temporary DB - Any integration test constructing `MainWindow` must set `LayoutPathOverride` to a temporary DB
and clear it in `finally`. and clear it in `finally`.
+6 -4
View File
@@ -42,9 +42,11 @@ public class ScoreboardSimulationTests
var type = typeof(MainViewModel); var type = typeof(MainViewModel);
Assert.NotNull(type.GetProperty("ScoreboardSimulate")); Assert.NotNull(type.GetProperty("ScoreboardSimulate"));
Assert.NotNull(type.GetProperty("IsDevelopmentBuild")); Assert.NotNull(type.GetProperty("IsDevelopmentBuild"));
// DEBUG-gated at compile time, so a Release build has no dev control at all. // DEBUG-gated at compile time through the shared build flag, not duplicated in the VM.
Assert.Contains("#if DEBUG", vmSource); var devBuild = SourceAssert.Text("Helpers", "DevBuild.cs");
Assert.Contains("private const bool DevelopmentBuild = true;", vmSource); Assert.Contains("#if DEBUG", devBuild);
Assert.Contains("private const bool DevelopmentBuild = false;", vmSource); Assert.Contains("true;", devBuild);
Assert.Contains("#else", devBuild);
Assert.Contains("false;", devBuild);
} }
} }