9bd5e340b0
Replace <list type="number"><item>...</item></list> with plain numbered lines in method-level <remarks> blocks across 23 UI test files to match the codebase convention of using simple text in XML doc comments.
54 lines
2.4 KiB
C#
54 lines
2.4 KiB
C#
using JdeScoping.Ui.Tests.Helpers;
|
|
using JdeScoping.Ui.Tests.Support;
|
|
|
|
namespace JdeScoping.Ui.Tests;
|
|
|
|
/// <summary>
|
|
/// Playwright UI smoke tests for the Data Sync Requests page.
|
|
/// Validates that the page loads and shows action buttons or redirects to search.
|
|
/// Requires a running Docker host (Category: RequiresDockerHost).
|
|
/// </summary>
|
|
public sealed class DataSyncPageTests(PlaywrightFixture fixture) : UiTestBase(fixture)
|
|
{
|
|
/// <summary>
|
|
/// Verifies the Data Sync page loads at /data-sync/requests and displays action buttons.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Steps:
|
|
/// 1. Navigate to the Data Sync Requests page.
|
|
/// 2. Assert the URL ends with /data-sync/requests or /search (redirect).
|
|
/// 3. If on the data sync page, assert "Data Sync Requests" heading is visible.
|
|
/// 4. Assert "New Request" or "Reload Pipelines" button is visible.
|
|
/// 5. If redirected, assert "Search Details" is visible.
|
|
/// </remarks>
|
|
[Fact]
|
|
[Trait("Category", "RequiresDockerHost")]
|
|
public async Task DataSync_Loads()
|
|
{
|
|
await RunAsync(async page =>
|
|
{
|
|
await UiNavigationHelper.NavigateToDataSyncAsync(page);
|
|
string url = page.Url;
|
|
bool onDataSync = url.EndsWith("/data-sync/requests", StringComparison.OrdinalIgnoreCase);
|
|
bool redirectedToSearch = url.EndsWith("/search", StringComparison.OrdinalIgnoreCase);
|
|
Assert.True(onDataSync || redirectedToSearch, $"Unexpected URL: {url}");
|
|
|
|
if (onDataSync)
|
|
{
|
|
await Assertions.Expect(page.GetByText("Data Sync Requests"))
|
|
.ToBeVisibleAsync(new LocatorAssertionsToBeVisibleOptions { Timeout = 15_000 });
|
|
var newRequestButton =
|
|
page.GetByRole(AriaRole.Button, new PageGetByRoleOptions { Name = "New Request" });
|
|
var reloadButton =
|
|
page.GetByRole(AriaRole.Button, new PageGetByRoleOptions { Name = "Reload Pipelines" });
|
|
bool hasAnyControl = await newRequestButton.IsVisibleAsync() || await reloadButton.IsVisibleAsync();
|
|
Assert.True(hasAnyControl, "Expected Data Sync action buttons to be visible.");
|
|
}
|
|
else
|
|
{
|
|
await Assertions.Expect(page.GetByText("Search Details"))
|
|
.ToBeVisibleAsync(new LocatorAssertionsToBeVisibleOptions { Timeout = 15_000 });
|
|
}
|
|
});
|
|
}
|
|
} |