Skip to content

Commit 25ab2af

Browse files
author
Meyn
committed
Fix YieldAsync WhenPaused Fixture
1 parent 3145df3 commit 25ab2af

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

UnitTest/YieldAsyncTests.cs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,27 +104,31 @@ public async Task YieldAsync_MultipleCalls_ShouldAllCompleteFast()
104104
public async Task YieldAsync_WhenPaused_ShouldWaitForResume()
105105
{
106106
// Arrange
107-
TaskCompletionSource<bool> tcs = new();
107+
TaskCompletionSource<bool> pausedTcs = new();
108108
OwnRequest? capturedRequest = null;
109109
using OwnRequest request = CreateParallelRequest(async token =>
110110
{
111-
tcs.SetResult(true);
112-
await capturedRequest!.YieldAsync();
111+
capturedRequest!.Pause();
112+
pausedTcs.SetResult(true);
113+
// This yield should wait because we're paused
114+
await capturedRequest.YieldAsync();
113115
return true;
114116
});
115117
capturedRequest = request;
116118

117-
await tcs.Task; // Wait for request to start
118-
119-
// Act
120-
request.Pause();
121-
ValueTask yieldTask = request.YieldAsync();
119+
await pausedTcs.Task;
122120

123121
// Assert
124-
yieldTask.IsCompleted.Should().BeFalse("Should wait when paused");
122+
request.State.Should().Be(RequestState.Paused);
123+
await Task.Delay(200);
124+
request.State.Should().Be(RequestState.Paused);
125125

126+
// Act
126127
request.Start();
127-
await Task.Delay(50); // Give time for resume
128+
await Task.Delay(100); // Give time to complete
129+
130+
// Assert - should complete successfully
131+
request.State.Should().Be(RequestState.Completed);
128132
}
129133

130134
[Test]

0 commit comments

Comments
 (0)