Skip to content

Commit b92fd77

Browse files
committed
Fix SSE fallback test race condition
- Publish event in background task after GetStreamAsync starts - Prevents timeout by ensuring event is published after endpoint subscribes - Fixes TaskCanceledException after 200s timeout in CI
1 parent beaeffb commit b92fd77

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

SWEN3.Paperless.RabbitMq.Tests/Unit/SseExtensionsFallbackTests.cs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,15 @@ public async Task MapSse_OnNet8_ShouldWriteCorrectSseFormat()
2929
var sseStream = server.Host.Services.GetRequiredService<ISseStream<Messages.SseTestEvent>>();
3030

3131
// Act
32-
// Start the request
32+
// Start the SSE request (will block until data is available)
3333
var responseTask = client.GetStreamAsync("/sse", TestContext.Current.CancellationToken);
3434

35-
// Give it a moment to connect
36-
await Task.Delay(50, TestContext.Current.CancellationToken);
37-
38-
// Publish an event
39-
sseStream.Publish(new Messages.SseTestEvent { Id = 1, Message = "Hello" });
40-
41-
// Allow processing
42-
await Task.Delay(50, TestContext.Current.CancellationToken);
35+
// Start a task to publish the event after giving the endpoint time to subscribe
36+
_ = Task.Run(async () =>
37+
{
38+
await Task.Delay(100, TestContext.Current.CancellationToken);
39+
sseStream.Publish(new Messages.SseTestEvent { Id = 1, Message = "Hello" });
40+
}, TestContext.Current.CancellationToken);
4341

4442
// Assert
4543
var stream = await responseTask;

0 commit comments

Comments
 (0)