diff --git a/HANDOFF.md b/HANDOFF.md index 24179d9..2f82822 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -11,18 +11,20 @@ the Shape block; focused test passes. This task is ready to commit. - `GeometryFieldWidthTests` now identifies the shared draggable-layer Geometry block; focused test passes. This task is ready to commit. -- Clean app build is 0 warnings. Full suite: 9 failed / 513 passed of 522; remaining failures are +- `NotificationServiceTests` now run tint assertions with the real theme resources and expect the + current `Brush.ErrorContainer` token; all 8 tests in that class pass. This task is ready to commit. +- Clean app build is 0 warnings. Full suite: 5 failed / 517 passed of 522; remaining failures are being handled one task and one local commit at a time. ## Next action -Commit the Geometry selector update, then take the next remaining failure. Do not -push absent a milestone/checkpoint request. +Commit the notification tint test fix, 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 9 suite failures are resolved; scope checks are run +- `verify.sh` cannot pass until the remaining 5 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`. diff --git a/ytLive.Tests/NotificationServiceTests.cs b/ytLive.Tests/NotificationServiceTests.cs index 69efc48..bd1e0ba 100644 --- a/ytLive.Tests/NotificationServiceTests.cs +++ b/ytLive.Tests/NotificationServiceTests.cs @@ -11,8 +11,13 @@ namespace ytLive.Tests; /// Errors must never auto-expire (sticky until dismissed); the rest get short /// lifetimes; everything routes to the in-window ToastArea. /// +[Collection("RealApp")] public class NotificationServiceTests { + private readonly RealAppHost _app; + + public NotificationServiceTests(RealAppHost app) => _app = app; + [Theory] [InlineData(AppNotificationSeverity.Info, 4)] [InlineData(AppNotificationSeverity.Success, 4)] @@ -39,11 +44,14 @@ public class NotificationServiceTests [InlineData(AppNotificationSeverity.Info, "#3a3b52")] [InlineData(AppNotificationSeverity.Success, "#1d5c38")] [InlineData(AppNotificationSeverity.Warning, "#b8860b")] - [InlineData(AppNotificationSeverity.Error, "#8f1f1f")] + [InlineData(AppNotificationSeverity.Error, "#93000a")] public void Severities_Map_To_Dark_Card_Tints(AppNotificationSeverity severity, string expectedHex) { - var request = NotificationService.BuildRequest("Title", "Body", severity); + _app.Run(() => + { + var request = NotificationService.BuildRequest("Title", "Body", severity); - Assert.Equal(expectedHex.ToLowerInvariant()[^6..], request.BackgroundColor!.Value.ToHex().ToLowerInvariant()[^6..]); + Assert.Equal(expectedHex.ToLowerInvariant()[^6..], request.BackgroundColor!.Value.ToHex().ToLowerInvariant()[^6..]); + }); } }