Skip to content

Commit 32ef11d

Browse files
committed
fix(e2e): update E2E tests for MudBlazor UI
- Use GetByRole(Heading) instead of GetByText for page headings (GetByText matched hidden <title> elements) - Replace inline form assertions with dialog-based flow for Transactions page (create form is now in a dialog) - Fix Dashboard heading test to use role-based selector
1 parent b2e2895 commit 32ef11d

4 files changed

Lines changed: 12 additions & 25 deletions

File tree

test/FinanceSplit.Web.Tests/Pages/DashboardPageTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ public async Task Dashboard_DisplaysHeading()
99
{
1010
await NavigateToAsync("/");
1111

12-
var heading = Page.GetByText("Dashboard").First;
13-
await heading.WaitForAsync();
12+
var heading = Page.GetByRole(Microsoft.Playwright.AriaRole.Heading, new() { Name = "Dashboard" });
1413
await Assert.That(await heading.CountAsync()).IsGreaterThanOrEqualTo(1);
1514
}
1615

test/FinanceSplit.Web.Tests/Pages/PeoplePageTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ public async Task PeoplePage_DisplaysHeading()
99
{
1010
await NavigateToAsync("/people");
1111

12-
var heading = Page.GetByText("People").First;
13-
await heading.WaitForAsync();
12+
var heading = Page.GetByRole(Microsoft.Playwright.AriaRole.Heading, new() { Name = "People" });
1413
await Assert.That(await heading.CountAsync()).IsGreaterThanOrEqualTo(1);
1514
}
1615

test/FinanceSplit.Web.Tests/Pages/SummaryPageTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ public async Task SummaryPage_DisplaysHeading()
99
{
1010
await NavigateToAsync("/summary");
1111

12-
var heading = Page.GetByText("Monthly Summary").First;
13-
await heading.WaitForAsync();
12+
var heading = Page.GetByRole(Microsoft.Playwright.AriaRole.Heading, new() { Name = "Monthly Summary" });
1413
await Assert.That(await heading.CountAsync()).IsGreaterThanOrEqualTo(1);
1514
}
1615

test/FinanceSplit.Web.Tests/Pages/TransactionsPageTests.cs

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,33 +14,23 @@ public async Task TransactionsPage_DisplaysHeading()
1414
}
1515

1616
[Test]
17-
public async Task TransactionsPage_HasCreateForm()
17+
public async Task TransactionsPage_HasNewTransactionButton()
1818
{
1919
await NavigateToAsync("/transactions");
2020

21-
var titleInput = Page.GetByLabel("Title:");
22-
await Assert.That(await titleInput.CountAsync()).IsEqualTo(1);
23-
24-
var amountInput = Page.GetByLabel("Amount:");
25-
await Assert.That(await amountInput.CountAsync()).IsEqualTo(1);
26-
27-
var paidBySelect = Page.GetByLabel("Paid By:");
28-
await Assert.That(await paidBySelect.CountAsync()).IsEqualTo(1);
29-
30-
var splitTypeSelect = Page.GetByLabel("Split Type:");
31-
await Assert.That(await splitTypeSelect.CountAsync()).IsEqualTo(1);
32-
33-
var createButton = Page.GetByRole(Microsoft.Playwright.AriaRole.Button, new() { Name = "Create" });
34-
await Assert.That(await createButton.CountAsync()).IsEqualTo(1);
21+
var newButton = Page.GetByRole(Microsoft.Playwright.AriaRole.Button, new() { Name = "New Transaction" });
22+
await Assert.That(await newButton.CountAsync()).IsEqualTo(1);
3523
}
3624

3725
[Test]
38-
public async Task TransactionsPage_ShowsSplitTypeOptions()
26+
public async Task TransactionsPage_OpensCreateDialog()
3927
{
4028
await NavigateToAsync("/transactions");
4129

42-
var splitSelect = Page.GetByLabel("Split Type:");
43-
var options = splitSelect.Locator("option");
44-
await Assert.That(await options.CountAsync()).IsEqualTo(3);
30+
await Page.GetByRole(Microsoft.Playwright.AriaRole.Button, new() { Name = "New Transaction" }).ClickAsync();
31+
32+
var dialogTitle = Page.GetByText("New Transaction").First;
33+
await dialogTitle.WaitForAsync();
34+
await Assert.That(await dialogTitle.CountAsync()).IsGreaterThanOrEqualTo(1);
4535
}
4636
}

0 commit comments

Comments
 (0)