Migrate Playwright suite to .NET UI tests and deprecate TS project
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
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);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user