diff --git a/samples/Sample.Service.Api/Sample.Service.Api.csproj b/samples/Sample.Service.Api/Sample.Service.Api.csproj
index 652a303..9e5060c 100644
--- a/samples/Sample.Service.Api/Sample.Service.Api.csproj
+++ b/samples/Sample.Service.Api/Sample.Service.Api.csproj
@@ -5,8 +5,8 @@
enable
-
+
-
+
\ No newline at end of file
diff --git a/samples/Samples.Blazor.App.Host/Samples.Blazor.App.Host.csproj b/samples/Samples.Blazor.App.Host/Samples.Blazor.App.Host.csproj
index e3c6939..352714d 100644
--- a/samples/Samples.Blazor.App.Host/Samples.Blazor.App.Host.csproj
+++ b/samples/Samples.Blazor.App.Host/Samples.Blazor.App.Host.csproj
@@ -8,6 +8,6 @@
-
+
\ No newline at end of file
diff --git a/samples/Samples.Blazor.App/Samples.Blazor.App.csproj b/samples/Samples.Blazor.App/Samples.Blazor.App.csproj
index 8381af3..7ecc385 100644
--- a/samples/Samples.Blazor.App/Samples.Blazor.App.csproj
+++ b/samples/Samples.Blazor.App/Samples.Blazor.App.csproj
@@ -5,9 +5,9 @@
enable
-
-
-
+
+
+
diff --git a/src/Pixel.Identity.Core/Pixel.Identity.Core.csproj b/src/Pixel.Identity.Core/Pixel.Identity.Core.csproj
index e9a33a5..bd99bd1 100644
--- a/src/Pixel.Identity.Core/Pixel.Identity.Core.csproj
+++ b/src/Pixel.Identity.Core/Pixel.Identity.Core.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/src/Pixel.Identity.Messenger.Email/Pixel.Identity.Messenger.Email.csproj b/src/Pixel.Identity.Messenger.Email/Pixel.Identity.Messenger.Email.csproj
index e48c1df..e066b5e 100644
--- a/src/Pixel.Identity.Messenger.Email/Pixel.Identity.Messenger.Email.csproj
+++ b/src/Pixel.Identity.Messenger.Email/Pixel.Identity.Messenger.Email.csproj
@@ -5,7 +5,7 @@
true
-
+
diff --git a/src/Pixel.Identity.Provider/Components/MainLayout.razor b/src/Pixel.Identity.Provider/Components/MainLayout.razor
index df851e6..dd80335 100644
--- a/src/Pixel.Identity.Provider/Components/MainLayout.razor
+++ b/src/Pixel.Identity.Provider/Components/MainLayout.razor
@@ -5,7 +5,7 @@
-
+
Pixel Identity Provider
diff --git a/src/Pixel.Identity.Provider/Pixel.Identity.Provider.csproj b/src/Pixel.Identity.Provider/Pixel.Identity.Provider.csproj
index b537c73..07fc833 100644
--- a/src/Pixel.Identity.Provider/Pixel.Identity.Provider.csproj
+++ b/src/Pixel.Identity.Provider/Pixel.Identity.Provider.csproj
@@ -10,20 +10,19 @@
..\..\.builds\Identity
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Pixel.Identity.Shared/Pixel.Identity.Shared.csproj b/src/Pixel.Identity.Shared/Pixel.Identity.Shared.csproj
index 7bdabfc..f9aa873 100644
--- a/src/Pixel.Identity.Shared/Pixel.Identity.Shared.csproj
+++ b/src/Pixel.Identity.Shared/Pixel.Identity.Shared.csproj
@@ -7,6 +7,6 @@
-
+
\ No newline at end of file
diff --git a/src/Pixel.Identity.Store.Mongo.Migrations/Pixel.Identity.Store.Mongo.Migrations.csproj b/src/Pixel.Identity.Store.Mongo.Migrations/Pixel.Identity.Store.Mongo.Migrations.csproj
index 2a87fbf..065afd5 100644
--- a/src/Pixel.Identity.Store.Mongo.Migrations/Pixel.Identity.Store.Mongo.Migrations.csproj
+++ b/src/Pixel.Identity.Store.Mongo.Migrations/Pixel.Identity.Store.Mongo.Migrations.csproj
@@ -9,10 +9,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/Pixel.Identity.Store.Mongo/Pixel.Identity.Store.Mongo.csproj b/src/Pixel.Identity.Store.Mongo/Pixel.Identity.Store.Mongo.csproj
index 03e3c7d..139d3de 100644
--- a/src/Pixel.Identity.Store.Mongo/Pixel.Identity.Store.Mongo.csproj
+++ b/src/Pixel.Identity.Store.Mongo/Pixel.Identity.Store.Mongo.csproj
@@ -6,19 +6,19 @@
true
-
+
runtime
-
-
+
+
runtime
-
+
runtime
-
-
+
+
diff --git a/src/Pixel.Identity.Store.PostgreSQL/Pixel.Identity.Store.PostgreSQL.csproj b/src/Pixel.Identity.Store.PostgreSQL/Pixel.Identity.Store.PostgreSQL.csproj
index 77b2300..4c5092f 100644
--- a/src/Pixel.Identity.Store.PostgreSQL/Pixel.Identity.Store.PostgreSQL.csproj
+++ b/src/Pixel.Identity.Store.PostgreSQL/Pixel.Identity.Store.PostgreSQL.csproj
@@ -6,18 +6,21 @@
true
-
-
-
+
+
+
runtime
-
+
runtime
-
-
-
-
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/Pixel.Identity.Store.Sql.Migrations/Pixel.Identity.Store.Sql.Migrations.csproj b/src/Pixel.Identity.Store.Sql.Migrations/Pixel.Identity.Store.Sql.Migrations.csproj
index e1f8ff2..2b2c562 100644
--- a/src/Pixel.Identity.Store.Sql.Migrations/Pixel.Identity.Store.Sql.Migrations.csproj
+++ b/src/Pixel.Identity.Store.Sql.Migrations/Pixel.Identity.Store.Sql.Migrations.csproj
@@ -8,13 +8,13 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
+
diff --git a/src/Pixel.Identity.Store.Sql.Shared/Pixel.Identity.Store.Sql.Shared.csproj b/src/Pixel.Identity.Store.Sql.Shared/Pixel.Identity.Store.Sql.Shared.csproj
index 0816674..721735f 100644
--- a/src/Pixel.Identity.Store.Sql.Shared/Pixel.Identity.Store.Sql.Shared.csproj
+++ b/src/Pixel.Identity.Store.Sql.Shared/Pixel.Identity.Store.Sql.Shared.csproj
@@ -6,17 +6,20 @@
true
-
-
-
+
+
+
runtime
-
+
runtime
-
-
-
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/Pixel.Identity.Store.SqlServer/Pixel.Identity.Store.SqlServer.csproj b/src/Pixel.Identity.Store.SqlServer/Pixel.Identity.Store.SqlServer.csproj
index 510f214..7b28537 100644
--- a/src/Pixel.Identity.Store.SqlServer/Pixel.Identity.Store.SqlServer.csproj
+++ b/src/Pixel.Identity.Store.SqlServer/Pixel.Identity.Store.SqlServer.csproj
@@ -6,18 +6,21 @@
true
-
-
-
+
+
+
runtime
-
+
runtime
-
-
-
-
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/Pixel.Identity.UI.Client/Components/AddRoleDialog.razor.cs b/src/Pixel.Identity.UI.Client/Components/AddRoleDialog.razor.cs
index ce45238..bf9abae 100644
--- a/src/Pixel.Identity.UI.Client/Components/AddRoleDialog.razor.cs
+++ b/src/Pixel.Identity.UI.Client/Components/AddRoleDialog.razor.cs
@@ -5,6 +5,7 @@
using Pixel.Identity.UI.Client.Services;
using System.Collections.Generic;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
namespace Pixel.Identity.UI.Client.Components
@@ -61,7 +62,7 @@ async Task AddRoleAsync()
///
///
///
- private async Task> SearchRoles(string value)
+ private async Task> SearchRoles(string value, CancellationToken ct)
{
// if text is null or empty, don't return values (drop-down will not open)
if (string.IsNullOrEmpty(value))
diff --git a/src/Pixel.Identity.UI.Client/Components/AddScopeDialog.razor.cs b/src/Pixel.Identity.UI.Client/Components/AddScopeDialog.razor.cs
index c7b3d3f..0ea3879 100644
--- a/src/Pixel.Identity.UI.Client/Components/AddScopeDialog.razor.cs
+++ b/src/Pixel.Identity.UI.Client/Components/AddScopeDialog.razor.cs
@@ -4,6 +4,7 @@
using Pixel.Identity.Shared.ViewModels;
using Pixel.Identity.UI.Client.Services;
using System.Collections.Generic;
+using System.Threading;
using System.Threading.Tasks;
namespace Pixel.Identity.UI.Client.Components
@@ -42,7 +43,7 @@ void AddScope()
///
///
///
- async Task> SearchScopes(string value)
+ async Task> SearchScopes(string value, CancellationToken ct)
{
// if text is null or empty, don't return values (drop-down will not open)
if (string.IsNullOrEmpty(value))
diff --git a/src/Pixel.Identity.UI.Client/Components/ApplicationForm.razor b/src/Pixel.Identity.UI.Client/Components/ApplicationForm.razor
index d5b6f4b..8cfd7ca 100644
--- a/src/Pixel.Identity.UI.Client/Components/ApplicationForm.razor
+++ b/src/Pixel.Identity.UI.Client/Components/ApplicationForm.razor
@@ -85,18 +85,17 @@
-
+
-
+
-
+
Scope Permissions
-
@@ -104,7 +103,7 @@
-
+
@@ -115,7 +114,7 @@
Requirements
-
+
@@ -124,12 +123,11 @@
Settings
-
+
Token LifeTimes
-
diff --git a/src/Pixel.Identity.UI.Client/Pages/Account/Logins.razor b/src/Pixel.Identity.UI.Client/Pages/Account/Logins.razor
index da6bab5..ae0f9c0 100644
--- a/src/Pixel.Identity.UI.Client/Pages/Account/Logins.razor
+++ b/src/Pixel.Identity.UI.Client/Pages/Account/Logins.razor
@@ -24,7 +24,7 @@ else
@foreach (var item in externalLogins)
{
-
@item.ProviderDisplayName
diff --git a/src/Pixel.Identity.UI.Client/Pages/Application/ApplicationList.razor b/src/Pixel.Identity.UI.Client/Pages/Application/ApplicationList.razor
index dbaf37e..1f4e801 100644
--- a/src/Pixel.Identity.UI.Client/Pages/Application/ApplicationList.razor
+++ b/src/Pixel.Identity.UI.Client/Pages/Application/ApplicationList.razor
@@ -1,7 +1,7 @@
@page "/applications/list"
@attribute [Authorize(Policy = Policies.CanManageApplications)]
-
Applications
diff --git a/src/Pixel.Identity.UI.Client/Pages/Application/ApplicationList.razor.cs b/src/Pixel.Identity.UI.Client/Pages/Application/ApplicationList.razor.cs
index 6a08cd7..a849813 100644
--- a/src/Pixel.Identity.UI.Client/Pages/Application/ApplicationList.razor.cs
+++ b/src/Pixel.Identity.UI.Client/Pages/Application/ApplicationList.razor.cs
@@ -5,6 +5,7 @@
using Pixel.Identity.UI.Client.Services;
using System;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
namespace Pixel.Identity.UI.Client.Pages.Application
@@ -36,7 +37,7 @@ public partial class ApplicationList : ComponentBase
///
///
///
- private async Task> GetApplicationsDataAsync(TableState state)
+ private async Task> GetApplicationsDataAsync(TableState state, CancellationToken ct)
{
try
{
diff --git a/src/Pixel.Identity.UI.Client/Pages/Roles/RoleList.razor b/src/Pixel.Identity.UI.Client/Pages/Roles/RoleList.razor
index d68d1c4..6bab42c 100644
--- a/src/Pixel.Identity.UI.Client/Pages/Roles/RoleList.razor
+++ b/src/Pixel.Identity.UI.Client/Pages/Roles/RoleList.razor
@@ -1,7 +1,7 @@
@page "/roles/list"
@attribute [Authorize(Policy = Policies.CanManageRoles)]
-
User Roles
diff --git a/src/Pixel.Identity.UI.Client/Pages/Roles/RoleList.razor.cs b/src/Pixel.Identity.UI.Client/Pages/Roles/RoleList.razor.cs
index bed8e85..bb7707c 100644
--- a/src/Pixel.Identity.UI.Client/Pages/Roles/RoleList.razor.cs
+++ b/src/Pixel.Identity.UI.Client/Pages/Roles/RoleList.razor.cs
@@ -4,6 +4,7 @@
using Pixel.Identity.Shared.ViewModels;
using Pixel.Identity.UI.Client.Services;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
namespace Pixel.Identity.UI.Client.Pages.Roles
@@ -35,7 +36,7 @@ public partial class RoleList : ComponentBase
///
///
///
- private async Task> GetRolesDataAsync(TableState state)
+ private async Task> GetRolesDataAsync(TableState state, CancellationToken ct)
{
try
{
diff --git a/src/Pixel.Identity.UI.Client/Pages/Scopes/ScopeList.razor b/src/Pixel.Identity.UI.Client/Pages/Scopes/ScopeList.razor
index 0e67889..086f7a5 100644
--- a/src/Pixel.Identity.UI.Client/Pages/Scopes/ScopeList.razor
+++ b/src/Pixel.Identity.UI.Client/Pages/Scopes/ScopeList.razor
@@ -1,7 +1,7 @@
@page "/scopes/list"
@attribute [Authorize(Policy = Policies.CanManageScopes)]
-
Scopes
diff --git a/src/Pixel.Identity.UI.Client/Pages/Scopes/ScopeList.razor.cs b/src/Pixel.Identity.UI.Client/Pages/Scopes/ScopeList.razor.cs
index c04b561..67e6d2f 100644
--- a/src/Pixel.Identity.UI.Client/Pages/Scopes/ScopeList.razor.cs
+++ b/src/Pixel.Identity.UI.Client/Pages/Scopes/ScopeList.razor.cs
@@ -4,6 +4,7 @@
using Pixel.Identity.Shared.ViewModels;
using Pixel.Identity.UI.Client.Services;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
namespace Pixel.Identity.UI.Client.Pages.Scopes
@@ -36,7 +37,7 @@ public partial class ScopeList : ComponentBase
///
///
///
- private async Task> GetScopesDataAsync(TableState state)
+ private async Task> GetScopesDataAsync(TableState state, CancellationToken ct)
{
try
{
diff --git a/src/Pixel.Identity.UI.Client/Pages/Users/UserList.razor b/src/Pixel.Identity.UI.Client/Pages/Users/UserList.razor
index c5ceed6..3d068e0 100644
--- a/src/Pixel.Identity.UI.Client/Pages/Users/UserList.razor
+++ b/src/Pixel.Identity.UI.Client/Pages/Users/UserList.razor
@@ -1,7 +1,7 @@
@page "/users/list"
@attribute [Authorize(Policy = Policies.CanManageUsers)]
-
Users
diff --git a/src/Pixel.Identity.UI.Client/Pages/Users/UserList.razor.cs b/src/Pixel.Identity.UI.Client/Pages/Users/UserList.razor.cs
index 6ccd626..51fdcd0 100644
--- a/src/Pixel.Identity.UI.Client/Pages/Users/UserList.razor.cs
+++ b/src/Pixel.Identity.UI.Client/Pages/Users/UserList.razor.cs
@@ -5,6 +5,7 @@
using Pixel.Identity.UI.Client.Components;
using Pixel.Identity.UI.Client.Services;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
namespace Pixel.Identity.UI.Client.Pages.Users
@@ -36,7 +37,7 @@ public partial class UserList : ComponentBase
///
///
///
- private async Task> GetUsersDataAsync(TableState state)
+ private async Task> GetUsersDataAsync(TableState state, CancellationToken ct)
{
try
{
diff --git a/src/Pixel.Identity.UI.Client/Pixel.Identity.UI.Client.csproj b/src/Pixel.Identity.UI.Client/Pixel.Identity.UI.Client.csproj
index 43601ea..66a405d 100644
--- a/src/Pixel.Identity.UI.Client/Pixel.Identity.UI.Client.csproj
+++ b/src/Pixel.Identity.UI.Client/Pixel.Identity.UI.Client.csproj
@@ -3,13 +3,13 @@
net8.0
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/Pixel.Identity.UI.Client/Shared/MainLayout.razor b/src/Pixel.Identity.UI.Client/Shared/MainLayout.razor
index 973c4f9..e978a87 100644
--- a/src/Pixel.Identity.UI.Client/Shared/MainLayout.razor
+++ b/src/Pixel.Identity.UI.Client/Shared/MainLayout.razor
@@ -1,12 +1,13 @@
@inherits LayoutComponentBase
+
-
+
diff --git a/src/Pixel.Identity.UI.Client/_Imports.razor b/src/Pixel.Identity.UI.Client/_Imports.razor
index 04e9a27..0711b7f 100644
--- a/src/Pixel.Identity.UI.Client/_Imports.razor
+++ b/src/Pixel.Identity.UI.Client/_Imports.razor
@@ -15,4 +15,5 @@
@using Pixel.Identity.UI.Client.Components;
@using MudBlazor;
@using Pixel.Identity.Shared;
-@using Blazored.FluentValidation
+@using Blazored.FluentValidation;
+@using System.Threading;
diff --git a/src/Pixel.Identity.UI.Tests/ComponentModels/AddUserComponent.cs b/src/Pixel.Identity.UI.Tests/ComponentModels/AddUserComponent.cs
index 113d961..543f359 100644
--- a/src/Pixel.Identity.UI.Tests/ComponentModels/AddUserComponent.cs
+++ b/src/Pixel.Identity.UI.Tests/ComponentModels/AddUserComponent.cs
@@ -49,7 +49,7 @@ public async Task SumbitFormAsync()
public async Task CloseDialogAsync()
{
var dialog = this.page.Locator("div[role='dialog']");
- await dialog.Locator("button[aria-label='close']").ClickAsync();
+ await dialog.Locator("button[aria-label='Close dialog']").ClickAsync();
}
///
diff --git a/src/Pixel.Identity.UI.Tests/ComponentModels/ClaimsManagerComponent.cs b/src/Pixel.Identity.UI.Tests/ComponentModels/ClaimsManagerComponent.cs
index c7091d6..6c91b59 100644
--- a/src/Pixel.Identity.UI.Tests/ComponentModels/ClaimsManagerComponent.cs
+++ b/src/Pixel.Identity.UI.Tests/ComponentModels/ClaimsManagerComponent.cs
@@ -60,7 +60,7 @@ await page.RunAndWaitForRequestAsync(async () =>
if(!success)
{
//close the claim dialog and return false indicating failure
- await page.Locator("div[role='dialog'] button[aria-label='close'])").ClickAsync();
+ await page.Locator("div[role='dialog'] button[aria-label='Close dialog'])").ClickAsync();
}
return success;
}
diff --git a/src/Pixel.Identity.UI.Tests/Pixel.Identity.UI.Tests.csproj b/src/Pixel.Identity.UI.Tests/Pixel.Identity.UI.Tests.csproj
index c6b492b..da89af2 100644
--- a/src/Pixel.Identity.UI.Tests/Pixel.Identity.UI.Tests.csproj
+++ b/src/Pixel.Identity.UI.Tests/Pixel.Identity.UI.Tests.csproj
@@ -4,12 +4,12 @@
false
-
-
-
-
+
+
+
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Pixel.Identity.UI.Tests/Tests/ApplicationsFixture.cs b/src/Pixel.Identity.UI.Tests/Tests/ApplicationsFixture.cs
index 0b117c7..92cbb93 100644
--- a/src/Pixel.Identity.UI.Tests/Tests/ApplicationsFixture.cs
+++ b/src/Pixel.Identity.UI.Tests/Tests/ApplicationsFixture.cs
@@ -109,8 +109,8 @@ public async Task Test_That_Can_Not_Create_Application_Without_Required_Details(
await addApplicationPage.GoToAsync();
await addApplicationPage.ApplyPreset(application.FromTemplate);
await this.Page.Locator("button[type='submit']").ClickAsync();
- await Assert.ThatAsync(async () => await this.Page.Locator("p.mud-input-helper-text.mud-input-error").Nth(0).InnerTextAsync(), Is.EqualTo("'Client Id' must not be empty."));
- await Assert.ThatAsync(async () => await this.Page.Locator("p.mud-input-helper-text.mud-input-error").Nth(1).InnerTextAsync(), Is.EqualTo("'Display Name' must not be empty."));
+ await Assert.ThatAsync(async () => await this.Page.Locator("span.mud-input-helper-text.mud-input-error").Nth(0).InnerTextAsync(), Is.EqualTo("'Client Id' must not be empty."));
+ await Assert.ThatAsync(async () => await this.Page.Locator("span.mud-input-helper-text.mud-input-error").Nth(1).InnerTextAsync(), Is.EqualTo("'Display Name' must not be empty."));
await Assert.ThatAsync(async () => await this.Page.Locator("div.validation-message").Nth(0).InnerTextAsync(), Is.EqualTo("RedirectUris is required for Authorization Code Flow"));
await Assert.ThatAsync(async () => await this.Page.Locator("div.validation-message").Nth(1).InnerTextAsync(), Is.EqualTo("PostLogoutRedirectUris is required for Authorization Code Flow"));
diff --git a/src/Pixel.Identity.UI.Tests/Tests/RegisterFixture.cs b/src/Pixel.Identity.UI.Tests/Tests/RegisterFixture.cs
index 1a482be..ae1c53a 100644
--- a/src/Pixel.Identity.UI.Tests/Tests/RegisterFixture.cs
+++ b/src/Pixel.Identity.UI.Tests/Tests/RegisterFixture.cs
@@ -95,7 +95,7 @@ public async Task Validate_That_Can_Register_Account(User user)
await registrationPage.RegisterAsync(user.Email, user.Password);
//After login, user should be able to see home, profile, logins and authenticator link without
//any additional claims
- await Expect(this.Page.Locator("div.mud-navmenu.mud-navmenu-default a")).ToHaveCountAsync(4);
+ await Expect(this.Page.Locator("nav a")).ToHaveCountAsync(4);
}
///
diff --git a/src/Pixel.Identity.UI.Tests/Tests/ScopesFixture.cs b/src/Pixel.Identity.UI.Tests/Tests/ScopesFixture.cs
index 7d06031..0682c74 100644
--- a/src/Pixel.Identity.UI.Tests/Tests/ScopesFixture.cs
+++ b/src/Pixel.Identity.UI.Tests/Tests/ScopesFixture.cs
@@ -275,7 +275,7 @@ await this.Page.Locator("div#errorAlert").WaitForAsync(new LocatorWaitForOptions
Timeout = 5000
});
await this.Page.Locator("div#errorAlert").IsVisibleAsync();
- await this.Page.Locator("button[aria-label='close']").ClickAsync();
+ await this.Page.Locator("button[aria-label='Close dialog']").ClickAsync();
}
diff --git a/src/Pixel.Identity.UI.Tests/Tests/UsersFixture.cs b/src/Pixel.Identity.UI.Tests/Tests/UsersFixture.cs
index 07da2af..a6de723 100644
--- a/src/Pixel.Identity.UI.Tests/Tests/UsersFixture.cs
+++ b/src/Pixel.Identity.UI.Tests/Tests/UsersFixture.cs
@@ -179,7 +179,7 @@ await this.Page.Locator("div.mud-popover-provider div.mud-list div.mud-list-item
await this.Page.Locator("div.mud-popover-provider div.mud-list div.mud-list-item-text").ClickAsync();
await dialog.Locator("button#btnAddRole").ClickAsync();
await Assert.ThatAsync(async () => await dialog.Locator("div#errorMessage").InnerTextAsync(), Is.EqualTo("IdentityAdmin role is already assigned to user."));
- await dialog.Locator("button[aria-label='close']").ClickAsync();
+ await dialog.Locator("button[aria-label='Close dialog']").ClickAsync();
}
}