Skip to content

Commit db74afc

Browse files
committed
Undo workarounds
1 parent 1f42a84 commit db74afc

File tree

7 files changed

+66
-73
lines changed

7 files changed

+66
-73
lines changed

src/Components/test/E2ETest/Tests/ComponentRenderingTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public void CanTriggerEvents()
8383
Browser.Equal("Current count: 1", () => countDisplayElement.Text);
8484
}
8585

86-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
86+
[Fact]
8787
public void CanTriggerAsyncEventHandlers()
8888
{
8989
// Initial state is stopped
@@ -540,7 +540,7 @@ public void CanRenderMultipleChildContent()
540540
e => Assert.Equal("End", e.Text));
541541
}
542542

543-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
543+
[Fact]
544544
public async Task CanAcceptSimultaneousRenderRequests()
545545
{
546546
var expectedOutput = string.Join(

src/Components/test/E2ETest/Tests/FormsTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ public void InputComponentsCauseContainerToRerenderOnChange()
419419
Browser.Equal("Premium", () => selectedTicketClassDisplay.Text);
420420
}
421421

422-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
422+
[Fact]
423423
public void InputComponentsRespondToAsynchronouslyAddedMessages()
424424
{
425425
var appElement = Browser.MountTestComponent<TypicalValidationComponent>();

src/Components/test/E2ETest/Tests/InteropTest.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,6 @@ public void CanInvokeDotNetMethods()
112112
var expectedValues = expectedAsyncValues;
113113
if (_serverFixture.ExecutionMode == ExecutionMode.Client)
114114
{
115-
// Workaround for https://github.com/dotnet/runtime/issues/38098
116-
expectedValues = new Dictionary<string, string>();
117-
expectedSyncValues.Remove("genericInstanceMethod");
118-
119115
foreach (var kvp in expectedSyncValues)
120116
{
121117
expectedValues.Add(kvp.Key, kvp.Value);

src/Components/test/E2ETest/Tests/WebAssemblyAuthenticationTests.cs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ protected override void InitializeAsyncCore()
6363
WaitUntilLoaded();
6464
}
6565

66-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
66+
[Fact]
6767
public void WasmAuthentication_Loads()
6868
{
69-
Assert.Equal("Wasm.Authentication.Client", Browser.Title);
69+
Browser.Equal("Wasm.Authentication.Client", () => Browser.Title);
7070
}
7171

72-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
72+
[Fact]
7373
public void AnonymousUser_GetsRedirectedToLogin_AndBackToOriginalProtectedResource()
7474
{
7575
var link = By.PartialLinkText("Fetch data");
@@ -85,7 +85,7 @@ public void AnonymousUser_GetsRedirectedToLogin_AndBackToOriginalProtectedResour
8585
ValidateFetchData();
8686
}
8787

88-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
88+
[Fact]
8989
public void CanPreserveApplicationState_DuringLogIn()
9090
{
9191
var originalAppState = Browser.Exists(By.Id("app-state")).Text;
@@ -110,7 +110,7 @@ public void CanPreserveApplicationState_DuringLogIn()
110110
Assert.Equal(originalAppState, restoredAppState);
111111
}
112112

113-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
113+
[Fact]
114114
public void CanShareUserRolesBetweenClientAndServer()
115115
{
116116
ClickAndNavigate(By.PartialLinkText("Log in"), "/Identity/Account/Login");
@@ -135,7 +135,7 @@ private void ClickAndNavigate(By link, string page)
135135
Browser.Contains(page, () => Browser.Url);
136136
}
137137

138-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
138+
[Fact]
139139
public void AnonymousUser_CanRegister_AndGetLoggedIn()
140140
{
141141
ClickAndNavigate(By.PartialLinkText("Register"), "/Identity/Account/Register");
@@ -152,7 +152,7 @@ public void AnonymousUser_CanRegister_AndGetLoggedIn()
152152
ValidateFetchData();
153153
}
154154

155-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
155+
[Fact]
156156
public void AuthenticatedUser_ProfileIncludesDetails_And_AccessToken()
157157
{
158158
ClickAndNavigate(By.PartialLinkText("User"), "/Identity/Account/Login");
@@ -207,7 +207,7 @@ public void AuthenticatedUser_ProfileIncludesDetails_And_AccessToken()
207207
Assert.True(currentTime.AddMinutes(60) >= tokenExpiration);
208208
}
209209

210-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
210+
[Fact]
211211
public void AuthenticatedUser_CanGoToProfile()
212212
{
213213
ClickAndNavigate(By.PartialLinkText("Register"), "/Identity/Account/Register");
@@ -223,7 +223,7 @@ public void AuthenticatedUser_CanGoToProfile()
223223
Browser.Equal("/", () => new Uri(Browser.Url).PathAndQuery);
224224
}
225225

226-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
226+
[Fact]
227227
public void RegisterAndBack_DoesNotCause_RedirectLoop()
228228
{
229229
Browser.FindElement(By.PartialLinkText("Register")).Click();
@@ -236,7 +236,7 @@ public void RegisterAndBack_DoesNotCause_RedirectLoop()
236236
Browser.Equal("/", () => new Uri(Browser.Url).PathAndQuery);
237237
}
238238

239-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
239+
[Fact]
240240
public void LoginAndBack_DoesNotCause_RedirectLoop()
241241
{
242242
Browser.FindElement(By.PartialLinkText("Log in")).Click();
@@ -249,7 +249,7 @@ public void LoginAndBack_DoesNotCause_RedirectLoop()
249249
Browser.Equal("/", () => new Uri(Browser.Url).PathAndQuery);
250250
}
251251

252-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
252+
[Fact]
253253
public void NewlyRegisteredUser_CanLogOut()
254254
{
255255
ClickAndNavigate(By.PartialLinkText("Register"), "/Identity/Account/Register");
@@ -262,7 +262,7 @@ public void NewlyRegisteredUser_CanLogOut()
262262
ValidateLogout();
263263
}
264264

265-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
265+
[Fact]
266266
public void AlreadyRegisteredUser_CanLogOut()
267267
{
268268
ClickAndNavigate(By.PartialLinkText("Register"), "/Identity/Account/Register");
@@ -288,7 +288,7 @@ public void AlreadyRegisteredUser_CanLogOut()
288288
ValidateLogout();
289289
}
290290

291-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
291+
[Fact]
292292
public void LoggedInUser_OnTheIdP_CanLogInSilently()
293293
{
294294
ClickAndNavigate(By.PartialLinkText("Register"), "/Identity/Account/Register");
@@ -306,7 +306,7 @@ public void LoggedInUser_OnTheIdP_CanLogInSilently()
306306
ValidateLoggedIn(userName);
307307
}
308308

309-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
309+
[Fact]
310310
public void CanNotRedirect_To_External_ReturnUrl()
311311
{
312312
Browser.Navigate().GoToUrl(new Uri(new Uri(Browser.Url), "/authentication/login?returnUrl=https%3A%2F%2Fwww.bing.com").AbsoluteUri);
@@ -315,7 +315,7 @@ public void CanNotRedirect_To_External_ReturnUrl()
315315
Assert.NotEmpty(Browser.GetBrowserLogs(LogLevel.Severe));
316316
}
317317

318-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
318+
[Fact]
319319
public async Task CanNotTrigger_Logout_WithNavigation()
320320
{
321321
Browser.Navigate().GoToUrl(new Uri(new Uri(Browser.Url), "/authentication/logout").AbsoluteUri);
@@ -408,8 +408,8 @@ private void RegisterCore(string userName, string password)
408408

409409
private void WaitUntilLoaded(bool skipHeader = false)
410410
{
411-
new WebDriverWait(Browser, TimeSpan.FromSeconds(30)).Until(
412-
driver => driver.FindElement(By.TagName("app")).Text != "Loading...");
411+
Browser.Exists(By.TagName("app"));
412+
Browser.True(() => Browser.FindElement(By.TagName("app")).Text != "Loading...");
413413

414414
if (!skipHeader)
415415
{

src/Components/test/testassets/BasicTestApp/Program.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,7 @@ private static async Task SimulateErrorsIfNeededForTest()
8585
throw new InvalidTimeZoneException("This is a synchronous startup exception");
8686
}
8787

88-
// Undo this once https://github.com/dotnet/runtime/issues/38098 is resolved
89-
// await Task.Yield();
88+
await Task.Yield();
9089

9190
if (currentUrl.Contains("error=async"))
9291
{

src/Components/test/testassets/BasicTestApp/wwwroot/js/jsinteroptests.js

Lines changed: 41 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -39,50 +39,48 @@ async function invokeDotNetInteropMethodsAsync(shouldSupportSyncInterop, dotNetO
3939
results['instanceMethodIncomingByRef'] = instanceMethodResult.incomingByRef;
4040
results['instanceMethodOutgoingByRef'] = DotNet.invokeMethod(assemblyName, 'ExtractNonSerializedValue', instanceMethodResult.outgoingByRef);
4141
}
42-
43-
if (!shouldSupportSyncInterop) {
44-
// workaround for https://github.com/dotnet/runtime/issues/38098
45-
console.log('Invoking void async methods.');
46-
47-
await DotNet.invokeMethodAsync(assemblyName, 'VoidParameterlessAsync');
48-
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithOneParameterAsync', ...createArgumentList(1, dotNetObjectByRef));
49-
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithTwoParametersAsync', ...createArgumentList(2, dotNetObjectByRef));
50-
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithThreeParametersAsync', ...createArgumentList(3, dotNetObjectByRef));
51-
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithFourParametersAsync', ...createArgumentList(4, dotNetObjectByRef));
52-
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithFiveParametersAsync', ...createArgumentList(5, dotNetObjectByRef));
53-
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithSixParametersAsync', ...createArgumentList(6, dotNetObjectByRef));
54-
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithSevenParametersAsync', ...createArgumentList(7, dotNetObjectByRef));
55-
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithEightParametersAsync', ...createArgumentList(8, dotNetObjectByRef));
56-
57-
console.log('Invoking returning async methods.');
58-
results['result1Async'] = await DotNet.invokeMethodAsync(assemblyName, 'ReturnArrayAsync');
59-
results['result2Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoOneParameterAsync', ...createArgumentList(1, dotNetObjectByRef));
60-
results['result3Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoTwoParametersAsync', ...createArgumentList(2, dotNetObjectByRef));
61-
results['result4Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoThreeParametersAsync', ...createArgumentList(3, dotNetObjectByRef));
62-
results['result5Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoFourParametersAsync', ...createArgumentList(4, dotNetObjectByRef));
63-
results['result6Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoFiveParametersAsync', ...createArgumentList(5, dotNetObjectByRef));
64-
results['result7Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoSixParametersAsync', ...createArgumentList(6, dotNetObjectByRef));
65-
results['result8Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoSevenParametersAsync', ...createArgumentList(7, dotNetObjectByRef));
66-
results['result9Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoEightParametersAsync', ...createArgumentList(8, dotNetObjectByRef));
67-
68-
const returnDotNetObjectByRefAsync = await DotNet.invokeMethodAsync(assemblyName, 'ReturnDotNetObjectByRefAsync');
69-
results['resultReturnDotNetObjectByRefAsync'] = await DotNet.invokeMethodAsync(assemblyName, 'ExtractNonSerializedValue', returnDotNetObjectByRefAsync['Some async instance']);
70-
71-
const instanceMethodAsync = await instanceMethodsTarget.invokeMethodAsync('InstanceMethodAsync', {
72-
stringValue: 'My string',
73-
dtoByRef: dotNetObjectByRef
74-
});
7542

76-
results['instanceMethodThisTypeNameAsync'] = instanceMethodAsync.thisTypeName;
77-
results['instanceMethodStringValueUpperAsync'] = instanceMethodAsync.stringValueUpper;
78-
results['instanceMethodIncomingByRefAsync'] = instanceMethodAsync.incomingByRef;
79-
results['instanceMethodOutgoingByRefAsync'] = await DotNet.invokeMethodAsync(assemblyName, 'ExtractNonSerializedValue', instanceMethodAsync.outgoingByRef);
43+
console.log('Invoking void async methods.');
44+
45+
await DotNet.invokeMethodAsync(assemblyName, 'VoidParameterlessAsync');
46+
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithOneParameterAsync', ...createArgumentList(1, dotNetObjectByRef));
47+
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithTwoParametersAsync', ...createArgumentList(2, dotNetObjectByRef));
48+
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithThreeParametersAsync', ...createArgumentList(3, dotNetObjectByRef));
49+
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithFourParametersAsync', ...createArgumentList(4, dotNetObjectByRef));
50+
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithFiveParametersAsync', ...createArgumentList(5, dotNetObjectByRef));
51+
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithSixParametersAsync', ...createArgumentList(6, dotNetObjectByRef));
52+
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithSevenParametersAsync', ...createArgumentList(7, dotNetObjectByRef));
53+
await DotNet.invokeMethodAsync(assemblyName, 'VoidWithEightParametersAsync', ...createArgumentList(8, dotNetObjectByRef));
54+
55+
console.log('Invoking returning async methods.');
56+
results['result1Async'] = await DotNet.invokeMethodAsync(assemblyName, 'ReturnArrayAsync');
57+
results['result2Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoOneParameterAsync', ...createArgumentList(1, dotNetObjectByRef));
58+
results['result3Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoTwoParametersAsync', ...createArgumentList(2, dotNetObjectByRef));
59+
results['result4Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoThreeParametersAsync', ...createArgumentList(3, dotNetObjectByRef));
60+
results['result5Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoFourParametersAsync', ...createArgumentList(4, dotNetObjectByRef));
61+
results['result6Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoFiveParametersAsync', ...createArgumentList(5, dotNetObjectByRef));
62+
results['result7Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoSixParametersAsync', ...createArgumentList(6, dotNetObjectByRef));
63+
results['result8Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoSevenParametersAsync', ...createArgumentList(7, dotNetObjectByRef));
64+
results['result9Async'] = await DotNet.invokeMethodAsync(assemblyName, 'EchoEightParametersAsync', ...createArgumentList(8, dotNetObjectByRef));
65+
66+
const returnDotNetObjectByRefAsync = await DotNet.invokeMethodAsync(assemblyName, 'ReturnDotNetObjectByRefAsync');
67+
results['resultReturnDotNetObjectByRefAsync'] = await DotNet.invokeMethodAsync(assemblyName, 'ExtractNonSerializedValue', returnDotNetObjectByRefAsync['Some async instance']);
68+
69+
const instanceMethodAsync = await instanceMethodsTarget.invokeMethodAsync('InstanceMethodAsync', {
70+
stringValue: 'My string',
71+
dtoByRef: dotNetObjectByRef
72+
});
8073

81-
console.log('Invoking generic type instance methods.');
74+
results['instanceMethodThisTypeNameAsync'] = instanceMethodAsync.thisTypeName;
75+
results['instanceMethodStringValueUpperAsync'] = instanceMethodAsync.stringValueUpper;
76+
results['instanceMethodIncomingByRefAsync'] = instanceMethodAsync.incomingByRef;
77+
results['instanceMethodOutgoingByRefAsync'] = await DotNet.invokeMethodAsync(assemblyName, 'ExtractNonSerializedValue', instanceMethodAsync.outgoingByRef);
78+
79+
console.log('Invoking generic type instance methods.');
80+
81+
results['syncGenericInstanceMethod'] = await genericDotNetObjectByRef.invokeMethodAsync('Update', 'Updated value 1');
82+
results['asyncGenericInstanceMethod'] = await genericDotNetObjectByRef.invokeMethodAsync('UpdateAsync', 'Updated value 2');
8283

83-
results['syncGenericInstanceMethod'] = await genericDotNetObjectByRef.invokeMethodAsync('Update', 'Updated value 1');
84-
results['asyncGenericInstanceMethod'] = await genericDotNetObjectByRef.invokeMethodAsync('UpdateAsync', 'Updated value 2');
85-
}
8684

8785
if (shouldSupportSyncInterop) {
8886
results['genericInstanceMethod'] = genericDotNetObjectByRef.invokeMethod('Update', 'Updated Value 3');
@@ -96,13 +94,13 @@ async function invokeDotNetInteropMethodsAsync(shouldSupportSyncInterop, dotNetO
9694
}
9795

9896
try {
99-
!shouldSupportSyncInterop && await DotNet.invokeMethodAsync(assemblyName, 'AsyncThrowSyncException');
97+
await DotNet.invokeMethodAsync(assemblyName, 'AsyncThrowSyncException');
10098
} catch (e) {
10199
results['AsyncThrowSyncException'] = e.message;
102100
}
103101

104102
try {
105-
!shouldSupportSyncInterop && await DotNet.invokeMethodAsync(assemblyName, 'AsyncThrowAsyncException');
103+
await DotNet.invokeMethodAsync(assemblyName, 'AsyncThrowAsyncException');
106104
} catch (e) {
107105
results['AsyncThrowAsyncException'] = e.message;
108106
}

src/ProjectTemplates/BlazorTemplates.Tests/BlazorWasmTemplateTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,15 +250,15 @@ private void ValidateAppWorksOffline(Project project, string listeningUri, bool
250250
TestBasicNavigation(project.ProjectName, skipFetchData: skipFetchData);
251251
}
252252

253-
[ConditionalFact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
253+
[ConditionalFact]
254254
// LocalDB doesn't work on non Windows platforms
255255
[OSSkipCondition(OperatingSystems.Linux | OperatingSystems.MacOSX)]
256256
public Task BlazorWasmHostedTemplate_IndividualAuth_Works_WithLocalDB()
257257
{
258258
return BlazorWasmHostedTemplate_IndividualAuth_Works(true);
259259
}
260260

261-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
261+
[Fact]
262262
public Task BlazorWasmHostedTemplate_IndividualAuth_Works_WithOutLocalDB()
263263
{
264264
return BlazorWasmHostedTemplate_IndividualAuth_Works(false);
@@ -329,7 +329,7 @@ private async Task BlazorWasmHostedTemplate_IndividualAuth_Works(bool useLocalDb
329329
}
330330
}
331331

332-
[Fact(Skip = "https://github.com/dotnet/runtime/issues/38098")]
332+
[Fact]
333333
public async Task BlazorWasmStandaloneTemplate_IndividualAuth_Works()
334334
{
335335
var project = await ProjectFactory.GetOrCreateProject("blazorstandaloneindividual", Output);
@@ -426,7 +426,7 @@ public TemplateInstance(string name, params string[] arguments)
426426
public string[] Arguments { get; }
427427
}
428428

429-
[Theory(Skip = "https://github.com/dotnet/runtime/issues/38098")]
429+
[Theory]
430430
[MemberData(nameof(TemplateData))]
431431
public async Task BlazorWasmHostedTemplate_AzureActiveDirectoryTemplate_Works(TemplateInstance instance)
432432
{

0 commit comments

Comments
 (0)