Skip to content

Commit d9874a6

Browse files
Fix flakyness of ShouldWaitForNetworkIdleToSucceedNavigation test. (#2239)
1 parent fe0513d commit d9874a6

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

lib/PuppeteerSharp.Tests/NavigationTests/PageGotoTests.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using Microsoft.AspNetCore.Http;
22
using System;
33
using System.Collections.Generic;
4-
using System.IO;
4+
using System.Linq;
55
using System.Net;
66
using System.Threading.Tasks;
77
using Xunit;
@@ -341,7 +341,7 @@ public async Task ShouldReturnLastResponseInRedirectChain()
341341
[SkipBrowserFact(skipFirefox: true)]
342342
public async Task ShouldWaitForNetworkIdleToSucceedNavigation()
343343
{
344-
var responses = new List<TaskCompletionSource<Func<HttpResponse, Task>>>();
344+
var responses = new ConcurrentSet<TaskCompletionSource<Func<HttpResponse, Task>>>();
345345
var fetches = new Dictionary<string, TaskCompletionSource<bool>>();
346346
foreach (var url in new[] {
347347
"/fetch-request-a.js",
@@ -397,7 +397,10 @@ await Task.WhenAll(
397397
fetches["/fetch-request-b.js"].Task,
398398
fetches["/fetch-request-c.js"].Task).WithTimeout();
399399

400-
foreach (var actionResponse in responses)
400+
var initialResponses = responses.ToArray();
401+
responses.Clear();
402+
403+
foreach (var actionResponse in initialResponses)
401404
{
402405
actionResponse.SetResult(response =>
403406
{
@@ -406,8 +409,6 @@ await Task.WhenAll(
406409
});
407410
}
408411

409-
responses.Clear();
410-
411412
await secondFetchResourceRequested.WithTimeout();
412413

413414
Assert.False(navigationFinished);

0 commit comments

Comments
 (0)