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 }); } }); } }