AddResourceComponent.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using Microsoft.Playwright;
  2. namespace Tests.E2e.PageObjectModels;
  3. public class AddResourceComponent(IPage page, string resourceType) {
  4. private readonly string _resourceType = resourceType.ToLower();
  5. // -------------------------------------------------
  6. // Root & Structure
  7. // -------------------------------------------------
  8. public ILocator Root
  9. => page.GetByTestId($"add-{_resourceType}-root");
  10. public ILocator Title
  11. => page.GetByTestId($"add-{_resourceType}-title");
  12. public ILocator Form
  13. => page.GetByTestId($"add-{_resourceType}-form");
  14. public ILocator Input
  15. => page.GetByTestId($"add-{_resourceType}-input");
  16. public ILocator Button
  17. => page.GetByTestId($"add-{_resourceType}-button");
  18. public ILocator Error
  19. => page.GetByTestId($"add-{_resourceType}-error");
  20. // -------------------------------------------------
  21. // Actions
  22. // -------------------------------------------------
  23. public async Task AddAsync(string name) {
  24. await Assertions.Expect(Root).ToBeVisibleAsync();
  25. await Input.FillAsync(name);
  26. await Button.ClickAsync();
  27. }
  28. public async Task AssertErrorAsync(string message) {
  29. await Assertions.Expect(Error)
  30. .ToHaveTextAsync(message);
  31. }
  32. public async Task AssertVisibleAsync() => await Assertions.Expect(Root).ToBeVisibleAsync();
  33. }