using Microsoft.Playwright; using Tests.PageObjects; namespace Tests; [Parallelizable(ParallelScope.Self)] [TestFixture] public class SyndicateTests : AuthenticatedPageTest { [SetUp] public void Setup() { _syndicatesPage = new SyndicatesPage(Page); } private SyndicatesPage _syndicatesPage; [Test] public async Task SyndicatesPage_ShouldOpenDialogOnPairingClick() { await _syndicatesPage.GotoAsync(); await _syndicatesPage.WaitForInteractiveAsync(); var count = await _syndicatesPage.PairingCards.CountAsync(); Assert.That(count, Is.GreaterThan(0), "No pairing cards found on Syndicates page."); // Click the first pairing card await _syndicatesPage.PairingCards.First.ClickAsync(); // Verify dialog is visible await Expect(_syndicatesPage.SyndicateDialog).ToBeVisibleAsync(); // Take a screenshot of the dialog await Page.ScreenshotAsync(new PageScreenshotOptions { Path = "syndicate-dialog.png" }); } [Test] public async Task SyndicatesPage_ShouldShowCorrectSyndicateTitle() { await _syndicatesPage.GotoAsync(); await _syndicatesPage.WaitForInteractiveAsync(); var firstCard = _syndicatesPage.PairingCards.First; var syndicateName = await firstCard.Locator(".syn-name").InnerTextAsync(); await firstCard.ClickAsync(); await Expect(_syndicatesPage.DialogTitle).ToHaveTextAsync(syndicateName); } [Test] public async Task SyndicatesPage_ShouldCloseDialog() { await _syndicatesPage.GotoAsync(); await _syndicatesPage.WaitForInteractiveAsync(); await _syndicatesPage.PairingCards.First.ClickAsync(); await Expect(_syndicatesPage.SyndicateDialog).ToBeVisibleAsync(); await _syndicatesPage.CloseDialogAsync(); await Expect(_syndicatesPage.SyndicateDialog).ToBeHiddenAsync(); } }