HostsExportPom.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using Microsoft.Playwright;
  2. namespace Tests.E2e.PageObjectModels;
  3. public class HostsExportPom(IPage page) {
  4. // -------------------------------------------------
  5. // Root
  6. // -------------------------------------------------
  7. public ILocator Page
  8. => page.GetByTestId("hosts-export-page");
  9. // -------------------------------------------------
  10. // Actions
  11. // -------------------------------------------------
  12. public ILocator GenerateButton
  13. => page.GetByTestId("generate-hosts-button");
  14. // -------------------------------------------------
  15. // Inputs
  16. // -------------------------------------------------
  17. public ILocator IncludeTagsInput
  18. => page.GetByTestId("hosts-include-tags-input");
  19. public ILocator DomainSuffixInput
  20. => page.GetByTestId("hosts-domain-suffix-input");
  21. public ILocator IncludeLocalhostCheckbox
  22. => page.GetByTestId("hosts-include-localhost-checkbox");
  23. // -------------------------------------------------
  24. // Output
  25. // -------------------------------------------------
  26. public ILocator Output
  27. => page.GetByTestId("hosts-output");
  28. public ILocator WarningsContainer
  29. => page.GetByTestId("hosts-warnings");
  30. // -------------------------------------------------
  31. // High-Level Actions
  32. // -------------------------------------------------
  33. public async Task AssertVisibleAsync()
  34. => await Assertions.Expect(Page).ToBeVisibleAsync();
  35. public async Task SetIncludeTagsAsync(string value)
  36. => await IncludeTagsInput.FillAsync(value);
  37. public async Task SetDomainSuffixAsync(string value)
  38. => await DomainSuffixInput.FillAsync(value);
  39. public async Task SetIncludeLocalhostAsync(bool value)
  40. => await IncludeLocalhostCheckbox.SetCheckedAsync(value);
  41. public async Task GenerateAsync()
  42. => await GenerateButton.ClickAsync();
  43. public async Task<string> GetOutputTextAsync()
  44. => await Output.InputValueAsync();
  45. public async Task AssertOutputContainsAsync(string text)
  46. => await Assertions.Expect(Output).ToContainTextAsync(text);
  47. public async Task AssertOutputDoesNotContainAsync(string text)
  48. => await Assertions.Expect(Output).Not.ToContainTextAsync(text);
  49. public async Task AssertNoWarningsAsync()
  50. => await Assertions.Expect(WarningsContainer).ToHaveCountAsync(0);
  51. }