| File: Pages\LoginTests.cs | Web Access |
| Project: src\tests\Aspire.Dashboard.Components.Tests\Aspire.Dashboard.Components.Tests.csproj (Aspire.Dashboard.Components.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Dashboard.Components.Tests.Shared; using Aspire.Dashboard.Tests.Shared; using Bunit; using Microsoft.AspNetCore.Components.Authorization; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Xunit; namespace Aspire.Dashboard.Components.Tests.Pages; [UseCulture("en-US")] public partial class LoginTests : DashboardTestContext { private readonly ITestOutputHelper _testOutputHelper; public LoginTests(ITestOutputHelper testOutputHelper) { _testOutputHelper = testOutputHelper; } [Fact] public void Initialize_LongRunningAuthStateFunc_EditContextSet() { // Arrange SetupLoginServices(); // This represents a long running auth state task. var tcs = new TaskCompletionSource<AuthenticationState>(TaskCreationOptions.RunContinuationsAsynchronously); // Act var cut = RenderComponent<Components.Pages.Login>(builder => { builder.Add(p => p.AuthenticationState, tcs.Task); }); var instance = cut.Instance; var logger = Services.GetRequiredService<ILogger<ConsoleLogsTests>>(); var loc = Services.GetRequiredService<IStringLocalizer<Resources.ConsoleLogs>>(); cut.WaitForState(() => instance.EditContext != null); } private void SetupLoginServices() { JSInterop.SetupModule("/Components/Pages/Login.razor.js"); FluentUISetupHelpers.SetupFluentAnchor(this); FluentUISetupHelpers.SetupFluentTextField(this); var loggerFactory = IntegrationTestHelpers.CreateLoggerFactory(_testOutputHelper); FluentUISetupHelpers.AddCommonDashboardServices(this); Services.AddSingleton<ILoggerFactory>(loggerFactory); Services.AddSingleton<IDashboardClient>(new TestDashboardClient()); } }