64 lines
2.6 KiB
C#
64 lines
2.6 KiB
C#
using Microsoft.Playwright;
|
|
|
|
namespace JdeScoping.Ui.Tests.Helpers;
|
|
|
|
internal static class UiSearchFormHelper
|
|
{
|
|
public static async Task SelectSearchTypeAsync(IPage page, string searchType)
|
|
{
|
|
await page.Locator(".rz-dropdown").First.ClickAsync();
|
|
await page.GetByRole(AriaRole.Option, new PageGetByRoleOptions { Name = searchType, Exact = true }).ClickAsync();
|
|
await page.WaitForTimeoutAsync(500);
|
|
}
|
|
|
|
public static Task EnterSearchNameAsync(IPage page, string name) =>
|
|
page.Locator("input[placeholder=' ']").First.FillAsync(name);
|
|
|
|
public static async Task SetDateRangeAsync(IPage page, string minimumMmDdYyyy, string maximumMmDdYyyy)
|
|
{
|
|
await page.Locator("input[name='MinimumDt']").FillAsync(minimumMmDdYyyy);
|
|
await page.Locator("input[name='MaximumDt']").FillAsync(maximumMmDdYyyy);
|
|
}
|
|
|
|
public static async Task AddAutocompleteItemAsync(IPage page, string panelHeader, string value)
|
|
{
|
|
var panel = page.Locator($".rz-card:has-text('{panelHeader}')");
|
|
await panel.Locator(".rz-autocomplete input").First.FillAsync(value);
|
|
await page.WaitForTimeoutAsync(500);
|
|
|
|
var listItem = page.Locator(".rz-autocomplete-list .rz-autocomplete-list-item").First;
|
|
if (await listItem.IsVisibleAsync())
|
|
{
|
|
await listItem.ClickAsync();
|
|
}
|
|
|
|
await panel.GetByRole(AriaRole.Button, new LocatorGetByRoleOptions { Name = "Add" }).ClickAsync();
|
|
await page.WaitForTimeoutAsync(250);
|
|
}
|
|
|
|
public static async Task UploadFileAsync(IPage page, string panelHeader, string filePath)
|
|
{
|
|
var panel = page.Locator($".rz-card:has-text('{panelHeader}')");
|
|
await panel.Locator("input[type='file']").First.SetInputFilesAsync(filePath);
|
|
await page.WaitForTimeoutAsync(1_500);
|
|
}
|
|
|
|
public static async Task SubmitSearchAsync(IPage page)
|
|
{
|
|
await page.GetByRole(AriaRole.Button, new PageGetByRoleOptions { Name = "Submit" }).First.ClickAsync();
|
|
await page.GetByText("Confirm Submit").WaitForAsync(new LocatorWaitForOptions
|
|
{
|
|
State = WaitForSelectorState.Visible,
|
|
Timeout = 10_000
|
|
});
|
|
await page.Locator(".rz-dialog-wrapper button").GetByText("Submit", new LocatorGetByTextOptions { Exact = true }).ClickAsync();
|
|
await page.WaitForTimeoutAsync(1_000);
|
|
}
|
|
|
|
public static async Task AssertNoErrorNotificationAsync(IPage page)
|
|
{
|
|
var error = page.Locator(".rz-notification-error");
|
|
await Assertions.Expect(error).Not.ToBeVisibleAsync(new LocatorAssertionsToBeVisibleOptions { Timeout = 5_000 });
|
|
}
|
|
}
|