Files
2026-02-10 07:47:48 -05:00

46 lines
1.9 KiB
C#

using JdeScoping.Ui.Tests.Helpers;
namespace JdeScoping.Ui.Tests.Support;
public abstract class SearchFlowTestBase(PlaywrightFixture fixture) : UiTestBase(fixture)
{
private static bool StrictMode =>
string.Equals(Environment.GetEnvironmentVariable("JDESCOPING_UI_STRICT"), "true",
StringComparison.OrdinalIgnoreCase);
protected Task RunSearchSubmissionAsync(
string searchType,
string testName,
string? minDate = null,
string? maxDate = null,
(string PanelHeader, string Value)[]? autocompleteItems = null,
(string PanelHeader, string FileName)[]? uploads = null)
{
return RunAsync(async page =>
{
await UiNavigationHelper.NavigateToSearchPageAsync(page);
await UiSearchFormHelper.EnterSearchNameAsync(page, testName);
await UiSearchFormHelper.SelectSearchTypeAsync(page, searchType);
await Assertions.Expect(page.Locator(".rz-dropdown-label").First).ToContainTextAsync(searchType);
if (!StrictMode)
// Default mode is smoke-only against local docker where source systems can be offline.
return;
if (!string.IsNullOrWhiteSpace(minDate) && !string.IsNullOrWhiteSpace(maxDate))
await UiSearchFormHelper.SetDateRangeAsync(page, minDate, maxDate);
if (autocompleteItems is not null)
foreach (var item in autocompleteItems)
await UiSearchFormHelper.AddAutocompleteItemAsync(page, item.PanelHeader, item.Value);
if (uploads is not null)
foreach (var upload in uploads)
await UiSearchFormHelper.UploadFileAsync(page, upload.PanelHeader,
TestDataPaths.Get(upload.FileName));
await UiSearchFormHelper.SubmitSearchAsync(page);
await UiSearchFormHelper.AssertNoErrorNotificationAsync(page);
});
}
}