| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using Microsoft.Playwright;
- namespace Tests.E2e.PageObjectModels;
- public class ServersListPom(IPage page) {
- public AddResourceComponent AddServer => new(page, "server");
- public ILocator PageRoot => page.GetByTestId("servers-page-root");
- public ILocator PageTitle => page.GetByTestId("servers-page-title");
- public ILocator Loading => page.GetByTestId("servers-loading");
- public ILocator EmptyState => page.GetByTestId("servers-empty");
- public ILocator ServersList => page.GetByTestId("servers-list");
- public ILocator AddSection => page.GetByTestId("add-server-section");
- // These must match your AddResourceComponent test IDs
- public ILocator AddInput => page.GetByTestId("add-server-input");
- public ILocator AddButton => page.GetByTestId("add-server-button");
- // -------------------------------------------------
- // Dynamic Server Items
- // -------------------------------------------------
- public ILocator ServerItem(string serverName) => page.GetByTestId($"server-item-{Sanitize(serverName)}");
- public ILocator DeleteButton(string serverName) {
- return ServerItem(serverName)
- .GetByTestId("delete-server-button");
- }
- public ILocator EditButton(string serverName) {
- return ServerItem(serverName)
- .GetByTestId("edit-server-button");
- }
- public ILocator RenameButton(string serverName) {
- return ServerItem(serverName)
- .GetByTestId("rename-server-button");
- }
- public ILocator CloneButton(string serverName) {
- return ServerItem(serverName)
- .GetByTestId("clone-server-button");
- }
- // -------------------------------------------------
- // Navigation
- // -------------------------------------------------
- public async Task GotoAsync(string baseUrl) {
- await page.GotoAsync($"{baseUrl}/servers/list");
- await AssertLoadedAsync();
- }
- public async Task AssertLoadedAsync() {
- await Assertions.Expect(PageRoot).ToBeVisibleAsync();
- await Assertions.Expect(PageTitle).ToBeVisibleAsync();
- }
- public async Task WaitForListAsync() => await Assertions.Expect(ServersList).ToBeVisibleAsync();
- // -------------------------------------------------
- // Actions
- // -------------------------------------------------
- public async Task AddServerAsync(string serverName) {
- await AddServer.AddAsync(serverName);
- await Assertions.Expect(ServerItem(serverName))
- .ToBeVisibleAsync();
- }
- public async Task DeleteServerAsync(string serverName) {
- await DeleteButton(serverName).ClickAsync();
- await page.GetByTestId("server-delete-confirm-modal-confirm").ClickAsync();
- await Assertions.Expect(ServerItem(serverName))
- .Not.ToBeVisibleAsync();
- }
- public async Task OpenServerAsync(string serverName) {
- await ServerItem(serverName).ClickAsync();
- await page.WaitForURLAsync($"**/resources/hardware/{serverName}");
- }
- public async Task AssertServerExists(string serverName) {
- await Assertions.Expect(ServerItem(serverName))
- .ToBeVisibleAsync();
- }
- public async Task AssertServerDoesNotExist(string serverName) {
- await Assertions.Expect(ServerItem(serverName))
- .Not.ToBeVisibleAsync();
- }
- private static string Sanitize(string value) => value.Replace(" ", "-");
- }
|