| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- using Microsoft.Playwright;
- namespace Tests.E2e.PageObjectModels;
- public class ServiceCardPom(IPage page)
- {
- // -------------------------------------------------
- // Root
- // -------------------------------------------------
- public ILocator Card(string name)
- => page.GetByTestId($"service-item-{Sanitize(name)}");
- public ILocator Link(string name)
- => page.GetByTestId($"service-item-{Sanitize(name)}-link");
- // -------------------------------------------------
- // Actions
- // -------------------------------------------------
- public ILocator EditButton(string name)
- => Card(name).GetByTestId("edit-service-button");
- public ILocator SaveButton(string name)
- => Card(name).GetByTestId("save-service-button");
- public ILocator CancelButton(string name)
- => Card(name).GetByTestId("cancel-service-button");
- public ILocator RenameButton(string name)
- => Card(name).GetByTestId("rename-service-button");
- public ILocator CloneButton(string name)
- => Card(name).GetByTestId("clone-service-button");
- public ILocator DeleteButton(string name)
- => Card(name).GetByTestId("delete-service-button");
- // -------------------------------------------------
- // Inputs (Edit Mode)
- // -------------------------------------------------
- public ILocator IpInput(string name)
- => Card(name).GetByTestId("service-ip-input");
- public ILocator PortInput(string name)
- => Card(name).GetByTestId("service-port-input");
- public ILocator ProtocolInput(string name)
- => Card(name).GetByTestId("service-protocol-input");
- public ILocator UrlInput(string name)
- => Card(name).GetByTestId("service-url-input");
- public ILocator RunsOnButton(string name)
- => Card(name).GetByTestId("service-runson-button");
- // -------------------------------------------------
- // View Mode Values
- // -------------------------------------------------
- public ILocator IpValue(string name)
- => Card(name).GetByTestId("service-ip-value");
- public ILocator PortValue(string name)
- => Card(name).GetByTestId("service-port-value");
- public ILocator ProtocolValue(string name)
- => Card(name).GetByTestId("service-protocol-value");
- public ILocator UrlValue(string name)
- => Card(name).GetByTestId("service-url-value");
- // -------------------------------------------------
- // Notes
- // -------------------------------------------------
- public ILocator NotesViewer
- => page.GetByTestId("service-notes-viewer-container");
- public ILocator NotesEditor
- => page.GetByTestId("service-notes-editor-container");
- // -------------------------------------------------
- // Confirm Modal
- // -------------------------------------------------
- public ILocator ConfirmDeleteButton
- => page.GetByTestId("service-delete-confirm-modal-confirm");
- // -------------------------------------------------
- // High-Level Actions
- // -------------------------------------------------
- public async Task AssertVisibleAsync(string name)
- {
- await Assertions.Expect(Card(name)).ToBeVisibleAsync();
- }
- public async Task BeginEditAsync(string name)
- => await EditButton(name).ClickAsync();
- public async Task SaveAsync(string name)
- => await SaveButton(name).ClickAsync();
- public async Task CancelAsync(string name)
- => await CancelButton(name).ClickAsync();
- public async Task RenameAsync(string currentName, string newName)
- {
- await RenameButton(currentName).ClickAsync();
- await page.GetByTestId("service-rename-string-value-modal-input").FillAsync(newName);
- await page.GetByTestId("service-rename-string-value-modal-submit").ClickAsync();
- await page.WaitForURLAsync($"**/resources/services/{newName}");
- }
- public async Task CloneAsync(string currentName, string cloneName)
- {
- await CloneButton(currentName).ClickAsync();
- await page.GetByTestId("service-clone-string-value-modal-input").FillAsync(cloneName);
- await page.GetByTestId("service-clone-string-value-modal-submit").ClickAsync();
- await page.WaitForURLAsync($"**/resources/services/{cloneName}");
- }
- public async Task DeleteAsync(string name)
- {
- await DeleteButton(name).ClickAsync();
- await ConfirmDeleteButton.ClickAsync();
- }
- private static string Sanitize(string value)
- => value.Replace(" ", "-");
- }
|