Skip to content

Commit 3d401d3

Browse files
authored
Address flaky TestAppOfflineDebounceTime test (#10128)
* Address flaky test * Fix callback
1 parent 80dd177 commit 3d401d3

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

test/WebJobs.Script.Tests/FileMonitoringServiceTests.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,8 +300,15 @@ public static async Task TestAppOfflineDebounceTime(string fileName, int delayIn
300300
WatchFiles = { "host.json" }
301301
};
302302
var loggerFactory = new LoggerFactory();
303+
304+
TaskCompletionSource stop = new TaskCompletionSource();
303305
var mockApplicationLifetime = new Mock<IApplicationLifetime>();
306+
mockApplicationLifetime.Setup(m => m.StopApplication()).Callback(() => stop.TrySetResult());
307+
308+
TaskCompletionSource restart = new TaskCompletionSource();
304309
var mockScriptHostManager = new Mock<IScriptHostManager>();
310+
mockScriptHostManager.Setup(m => m.RestartHostAsync(default)).Callback(() => restart.TrySetResult());
311+
305312
var mockEventManager = new ScriptEventManager();
306313
var environment = new TestEnvironment();
307314

@@ -311,18 +318,19 @@ public static async Task TestAppOfflineDebounceTime(string fileName, int delayIn
311318
await fileMonitoringService.StartAsync(new CancellationToken(canceled: false));
312319

313320
var offlineEventArgs = new FileSystemEventArgs(WatcherChangeTypes.Created, tempDir, fileName);
314-
FileEvent offlinefileEvent = new FileEvent("ScriptFiles", offlineEventArgs);
321+
FileEvent offlineFileEvent = new FileEvent("ScriptFiles", offlineEventArgs);
315322

316323
var randomFileEventArgs = new FileSystemEventArgs(WatcherChangeTypes.Created, tempDir, "random.txt");
317324
FileEvent randomFileEvent = new FileEvent("ScriptFiles", randomFileEventArgs);
318325

319-
mockEventManager.Publish(offlinefileEvent);
326+
mockEventManager.Publish(offlineFileEvent);
320327
await Task.Delay(delayInMs);
321328
mockEventManager.Publish(randomFileEvent);
322329

323330
// Test
324331
if (expectShutdown)
325332
{
333+
await stop.Task.WaitAsync(TimeSpan.FromSeconds(5));
326334
mockApplicationLifetime.Verify(m => m.StopApplication());
327335
}
328336
else
@@ -332,6 +340,7 @@ public static async Task TestAppOfflineDebounceTime(string fileName, int delayIn
332340

333341
if (expectRestart)
334342
{
343+
await restart.Task.WaitAsync(TimeSpan.FromSeconds(5));
335344
mockScriptHostManager.Verify(m => m.RestartHostAsync(default));
336345
}
337346
else

0 commit comments

Comments
 (0)