Files
jdescopingtool/NEW/tests/JdeScoping.Ui.Tests/DataSyncPageTests.cs
T

35 lines
1.5 KiB
C#

using JdeScoping.Ui.Tests.Helpers;
using JdeScoping.Ui.Tests.Support;
namespace JdeScoping.Ui.Tests;
public sealed class DataSyncPageTests(PlaywrightFixture fixture) : UiTestBase(fixture)
{
[Fact]
[Trait("Category", "RequiresDockerHost")]
public async Task DataSync_Loads()
{
await RunAsync(async page =>
{
await UiNavigationHelper.NavigateToDataSyncAsync(page);
var url = page.Url;
var onDataSync = url.EndsWith("/data-sync/requests", StringComparison.OrdinalIgnoreCase);
var 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() { Timeout = 15_000 });
var newRequestButton = page.GetByRole(Microsoft.Playwright.AriaRole.Button, new() { Name = "New Request" });
var reloadButton = page.GetByRole(Microsoft.Playwright.AriaRole.Button, new() { Name = "Reload Pipelines" });
var 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() { Timeout = 15_000 });
}
});
}
}