Skip to content

Commit 54ef75a

Browse files
authored
Update UI test methods (#301)
1 parent a074158 commit 54ef75a

File tree

9 files changed

+316
-341
lines changed

9 files changed

+316
-341
lines changed

src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/AdminEvents.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66

77
<p>This component demonstrates showing admin events.</p>
88

9-
<AdminEventsComponent @rendermode="InteractiveServer"/>
9+
<AdminEventsComponent Id="admin-events" @rendermode="InteractiveServer"/>
Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
1-
@page "/tests"
2-
@rendermode InteractiveServer
3-
4-
<h1>Debug Button</h1>
5-
<DebugTargetComponent Id="debug-target" OnValueChanged="SetInput" />
6-
<DebugButtonComponent Id="debug-button" Input="@currentValue" />
7-
8-
<DeploymentModelListComponent Id="deployment-model-list" OnUserOptionSelected="HandleSelectedModelValue" @rendermode="InteractiveServer" />
9-
<DebugButtonComponent Id="debug-button-selected-model" Input="@selectedModelValue" />
10-
11-
@code {
12-
private object? currentValue;
13-
private string? selectedModelValue = "";
14-
15-
private async Task SetInput(int newValue)
16-
{
17-
currentValue = newValue;
18-
await Task.CompletedTask;
19-
}
20-
21-
private async Task HandleSelectedModelValue(string val)
22-
{
23-
selectedModelValue = val;
24-
await Task.CompletedTask;
25-
}
26-
}
1+
@page "/tests"
2+
@rendermode InteractiveServer
3+
4+
<h1>Component Tests</h1>
5+
6+
<h2>Debug Button</h2>
7+
<DebugTargetComponent Id="debug-target" OnValueChanged="SetInput" />
8+
<DebugButtonComponent Id="debug-button" Input="@targetValue" />
9+
10+
<h2>Deployment Models</h2>
11+
<DeploymentModelListComponent Id="debug-deployment-model-list" OnUserOptionSelected="SetDeploymentModel" @rendermode="InteractiveServer" />
12+
<DebugButtonComponent Id="debug-button-deployment-model-list" Input="@selectedModel" />
13+
14+
@code {
15+
private object? targetValue;
16+
private string? selectedModel;
17+
18+
private async Task SetInput(int value)
19+
{
20+
targetValue = value;
21+
await Task.CompletedTask;
22+
}
23+
24+
private async Task SetDeploymentModel(string value)
25+
{
26+
selectedModel = value;
27+
await Task.CompletedTask;
28+
}
29+
}

src/AzureOpenAIProxy.PlaygroundApp/Components/UI/Admin/AdminEventsComponent.razor

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@using AzureOpenAIProxy.PlaygroundApp.Models
22

3-
<div id="admin-events-component">
3+
<FluentLayout Id="@Id">
44
@if (eventDetails == null)
55
{
66
<p><em>Loading...</em></p>
@@ -41,12 +41,15 @@
4141
}
4242
</div>
4343
}
44-
</div>
44+
</FluentLayout>
4545

4646
@code {
4747
private IQueryable<AdminEventDetails>? eventDetails;
4848
private PaginationState pagination = new PaginationState { ItemsPerPage = 10 };
4949

50+
[Parameter]
51+
public string? Id { get; set; }
52+
5053
protected override async Task OnInitializedAsync()
5154
{
5255
// Simulate asynchronous loading to demonstrate streaming rendering

src/AzureOpenAIProxy.PlaygroundApp/Components/UI/DeploymentModelListComponent.razor

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616
</FluentLayout>
1717

1818
@code {
19+
private Option<string>? selectedOption { get; set; } = new();
20+
1921
[Parameter]
2022
public string? Id { get; set; }
21-
private Option<string>? selectedOption { get; set; } = new();
2223

2324
[Parameter]
2425
public EventCallback<string> OnUserOptionSelected { get; set; }

test/AzureOpenAIProxy.PlaygroundApp.Tests/Pages/AdminEventsPageTests.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class AdminEventsPageTests : PageTest
1616
};
1717

1818
[SetUp]
19-
public async Task Setup()
19+
public async Task Init()
2020
{
2121
await Page.GotoAsync("https://localhost:5001/admin/events");
2222
await Page.WaitForLoadStateAsync(LoadState.NetworkIdle);
@@ -26,7 +26,7 @@ public async Task Setup()
2626
public async Task Given_Events_Page_When_Navigated_Then_It_Should_Have_ListEventDetailsComponent()
2727
{
2828
// Act
29-
var adminEventsComponent = await Page.QuerySelectorAsync("#admin-events-component");
29+
var adminEventsComponent = await Page.QuerySelectorAsync("#admin-events");
3030

3131
// Assert
3232
adminEventsComponent.Should().NotBeNull();
@@ -44,4 +44,10 @@ public async Task Given_Events_Page_When_Navigated_Then_It_Should_Have_EventDeta
4444
// Assert
4545
adminEventsTable.Should().NotBeNull();
4646
}
47+
48+
[TearDown]
49+
public async Task CleanUp()
50+
{
51+
await Page.CloseAsync();
52+
}
4753
}
Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,38 @@
1-
using Microsoft.Playwright;
2-
using Microsoft.Playwright.NUnit;
3-
4-
namespace AzureOpenAIProxy.PlaygroundApp.Tests.Pages;
5-
6-
[Parallelizable(ParallelScope.Self)]
7-
[TestFixture]
8-
[Property("Category", "Integration")]
9-
public class HomePageTests : PageTest
10-
{
11-
public override BrowserNewContextOptions ContextOptions() => new()
12-
{
13-
IgnoreHTTPSErrors = true,
14-
};
15-
16-
[SetUp]
17-
public async Task Setup()
18-
{
19-
await Page.GotoAsync("https://localhost:5001");
20-
await Page.WaitForLoadStateAsync(LoadState.NetworkIdle);
21-
}
22-
23-
[Test]
24-
public void Given_Root_Page_When_Navigated_Then_It_Should_No_Sidebar()
25-
{
26-
// Act
27-
var sidebar = Page.Locator("div.sidebar");
28-
29-
// Assert
30-
Expect(sidebar).Equals(null);
31-
}
32-
}
1+
using Microsoft.Playwright;
2+
using Microsoft.Playwright.NUnit;
3+
4+
namespace AzureOpenAIProxy.PlaygroundApp.Tests.Pages;
5+
6+
[Parallelizable(ParallelScope.Self)]
7+
[TestFixture]
8+
[Property("Category", "Integration")]
9+
public class HomePageTests : PageTest
10+
{
11+
public override BrowserNewContextOptions ContextOptions() => new()
12+
{
13+
IgnoreHTTPSErrors = true,
14+
};
15+
16+
[SetUp]
17+
public async Task Init()
18+
{
19+
await Page.GotoAsync("https://localhost:5001");
20+
await Page.WaitForLoadStateAsync(LoadState.NetworkIdle);
21+
}
22+
23+
[Test]
24+
public void Given_Root_Page_When_Navigated_Then_It_Should_No_Sidebar()
25+
{
26+
// Act
27+
var sidebar = Page.Locator("div.sidebar");
28+
29+
// Assert
30+
Expect(sidebar).Equals(null);
31+
}
32+
33+
[TearDown]
34+
public async Task CleanUp()
35+
{
36+
await Page.CloseAsync();
37+
}
38+
}

0 commit comments

Comments
 (0)