test(notification-outbox): cover Discard and query-failure paths on the Outbox page

This commit is contained in:
Joseph Doherty
2026-05-19 03:02:48 -04:00
parent ad9872705d
commit 9b05e48ea6
2 changed files with 36 additions and 0 deletions

View File

@@ -165,6 +165,27 @@ public class NotificationOutboxPageTests : BunitContext
});
}
[Fact]
public void ClickDiscard_OnParkedRow_CallsDiscardNotification()
{
var cut = Render<NotificationOutboxPage>();
cut.WaitForState(() => cut.Markup.Contains("Pump fault at Plant-A"));
var parkedRow = cut.FindAll("tbody tr")
.First(r => r.TextContent.Contains("Pump fault at Plant-A"));
var discardButton = parkedRow.QuerySelectorAll("button")
.First(b => b.TextContent.Contains("Discard"));
discardButton.Click();
cut.WaitForAssertion(() =>
{
Assert.Single(_discardRequests);
Assert.Equal("notif-aaaaaaaa-1111", _discardRequests[0].NotificationId);
});
}
[Fact]
public void KpiFailure_ShowsErrorMessage()
{
@@ -177,6 +198,19 @@ public class NotificationOutboxPageTests : BunitContext
Assert.Contains("outbox repository unavailable", cut.Markup));
}
[Fact]
public void QueryFailure_ShowsErrorMessage()
{
_queryReply = new NotificationOutboxQueryResponse(
"q", false, "outbox query backend unavailable",
new List<NotificationSummary>(), TotalCount: 0);
var cut = Render<NotificationOutboxPage>();
cut.WaitForAssertion(() =>
Assert.Contains("outbox query backend unavailable", cut.Markup));
}
protected override void Dispose(bool disposing)
{
if (disposing)