Skip to content

Commit cf5a455

Browse files
committed
Improve tests
1 parent 894a681 commit cf5a455

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

src/Components/test/E2ETest/ServerExecutionTests/ServerResumeTests.cs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,26 @@ public void CanResumeCircuitAfterDisconnection()
3737
Browser.Exists(By.Id("increment-persistent-counter-count")).Click();
3838

3939
Browser.Equal("1", () => Browser.Exists(By.Id("persistent-counter-count")).Text);
40-
var previousText = Browser.Exists(By.Id("persistent-counter-render")).Text;
4140
var javascript = (IJavaScriptExecutor)Browser;
4241
javascript.ExecuteScript("window.replaceReconnectCallback()");
42+
43+
TriggerReconnectAndInteract(javascript);
44+
45+
// Can dispatch events after reconnect
46+
Browser.Equal("2", () => Browser.Exists(By.Id("persistent-counter-count")).Text);
47+
48+
javascript.ExecuteScript("resetReconnect()");
49+
50+
TriggerReconnectAndInteract(javascript);
51+
52+
// Ensure that reconnection events are repeatable
53+
Browser.Equal("3", () => Browser.Exists(By.Id("persistent-counter-count")).Text);
54+
}
55+
56+
private void TriggerReconnectAndInteract(IJavaScriptExecutor javascript)
57+
{
58+
var previousText = Browser.Exists(By.Id("persistent-counter-render")).Text;
59+
4360
javascript.ExecuteScript("Blazor._internal.forceCloseConnection()");
4461
Browser.Equal("block", () => Browser.Exists(By.Id("components-reconnect-modal")).GetCssValue("display"));
4562

@@ -52,8 +69,5 @@ public void CanResumeCircuitAfterDisconnection()
5269
Assert.NotEqual(previousText, newText);
5370

5471
Browser.Exists(By.Id("increment-persistent-counter-count")).Click();
55-
56-
// Can dispatch events after reconnect
57-
Browser.Equal("2", () => Browser.Exists(By.Id("persistent-counter-count")).Text);
5872
}
5973
}

src/Components/test/testassets/Components.TestServer/RazorComponents/Root.razor

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,22 @@
1515
<script>
1616
const suppressEnhancedNavigation = sessionStorage.getItem('suppress-enhanced-navigation') === 'true';
1717
18-
let reconnectResolver = undefined;
19-
const reconnectPromise = new Promise((resolve) => {
20-
reconnectResolver = resolve;
21-
});
18+
let pwr = Promise.withResolvers();
19+
let reconnectPromise = pwr.promise;
20+
let reconnectResolver = pwr.resolve;
2221
2322
function triggerReconnect() {
2423
if(reconnectResolver) {
2524
reconnectResolver();
2625
}
2726
}
2827
28+
function resetReconnect() {
29+
pwr = Promise.withResolvers();
30+
reconnectPromise = pwr.promise;
31+
reconnectResolver = pwr.resolve;
32+
}
33+
2934
function replaceReconnectCallback() {
3035
const originalCallback = Blazor.defaultReconnectionHandler._reconnectCallback;
3136
Blazor.defaultReconnectionHandler._reconnectCallback = async () => {

0 commit comments

Comments
 (0)