From ea5209c963ef9819368bffbdb25e99d3def97951 Mon Sep 17 00:00:00 2001 From: JerrettDavis Date: Mon, 19 Oct 2026 20:20:09 -0500 Subject: [PATCH] test: fix race in WiresInnerHandlerOnlyOnce queue test --- .../QueueDecoratorAndAdminCommandTests.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/JD.AI.Gateway.Tests/QueueDecoratorAndAdminCommandTests.cs b/tests/JD.AI.Gateway.Tests/QueueDecoratorAndAdminCommandTests.cs index 308b92d8..b5da7659 100644 --- a/tests/JD.AI.Gateway.Tests/QueueDecoratorAndAdminCommandTests.cs +++ b/tests/JD.AI.Gateway.Tests/QueueDecoratorAndAdminCommandTests.cs @@ -86,7 +86,16 @@ public async Task MessageReceived_WithMultipleSubscribers_WiresInnerHandlerOnlyO Assert.Equal(1, subscriberOneCalls); Assert.Equal(1, subscriberTwoCalls); + // The drain loop marks the entry completed after the handlers return, so poll + // instead of asserting immediately (avoids a race with the background drain). + var deadline = DateTime.UtcNow.AddSeconds(5); var stats = await buffer.GetStatsAsync(); + while (stats.Completed < 1 && DateTime.UtcNow < deadline) + { + await Task.Delay(20); + stats = await buffer.GetStatsAsync(); + } + Assert.Equal(1, stats.Completed); Assert.Equal(1, stats.Total); }