diff --git a/Directory.Packages.props b/Directory.Packages.props index 25c51077a..6f8957b14 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -7,7 +7,7 @@ 1.5.70 0.7.0 1.17.0 - 0.17.10 + 0.17.11 3.20.1 5.0.7 10.8.3 diff --git a/src/Netclaw.Actors.Tests/Reminders/ReminderManagerActorTests.cs b/src/Netclaw.Actors.Tests/Reminders/ReminderManagerActorTests.cs index 5561049f7..2faf0c321 100644 --- a/src/Netclaw.Actors.Tests/Reminders/ReminderManagerActorTests.cs +++ b/src/Netclaw.Actors.Tests/Reminders/ReminderManagerActorTests.cs @@ -604,9 +604,18 @@ await manager.Ask( TimeSpan.FromSeconds(30), TestContext.Current.CancellationToken); - Assert.Contains(sink.Alerts, alert => - alert.Category == AlertType.ReminderSchemaDropped - && alert.Summary.Contains(reminderId, StringComparison.Ordinal)); + // Keep the Ask as the startup barrier (it absorbs dispatcher + // scheduling latency under parallel CI load), but poll the sink + // instead of trusting a one-shot post-Ask read: the health reply + // proves PreStart completed, not that the alert reached the sink. + // This test has flaked on CI twice (#1405, #1844) with an empty + // sink immediately after a successful Ask reply. + await AwaitAssertAsync(() => + { + Assert.Contains(sink.Alerts, alert => + alert.Category == AlertType.ReminderSchemaDropped + && alert.Summary.Contains(reminderId, StringComparison.Ordinal)); + }, duration: TimeSpan.FromSeconds(30), cancellationToken: TestContext.Current.CancellationToken); } ///