| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using Microsoft.Playwright;
- using Shared.Rcl.Systems;
- using Tests.E2e.PageObjectModels;
- using Tests.E2e.Pages;
- using Xunit.Abstractions;
- namespace Tests.E2e;
- public class ServiceTests(
- PlaywrightFixture fixture,
- ITestOutputHelper output) :E2ETestBase(fixture, output)
- {
- private readonly ITestOutputHelper _output = output;
- [Fact]
- public async Task User_Can_Add_And_Delete_System()
- {
- var (context, page) = await CreatePageAsync();
- try
- {
- // Go home
- await page.GotoAsync(fixture.BaseUrl);
- _output.WriteLine($"URL after Goto: {page.Url}");
-
- var layout = new MainLayoutPom(page);
- await layout.AssertLoadedAsync();
- await layout.GotoServicesAsync();
-
- var systems = new ServicesListPom(page);
-
- var serviceName = $"e2e-service-{Guid.NewGuid():N}"[..12];
- await systems.AddServiceAsync(serviceName);
- await systems.AssertServiceExists(serviceName);
- await systems.DeleteServiceAsync(serviceName);
- await systems.AssertServiceDoesNotExist(serviceName);
- await context.CloseAsync();
- }
- catch (Exception ex)
- {
- _output.WriteLine("TEST FAILED — Capturing diagnostics");
- _output.WriteLine($"Current URL: {page.Url}");
- var html = await page.ContentAsync();
- _output.WriteLine("==== DOM SNAPSHOT START ====");
- _output.WriteLine(html);
- _output.WriteLine("==== DOM SNAPSHOT END ====");
-
- throw;
- }
- finally
- {
- await context.CloseAsync();
- }
- }
- }
|