using Xunit; namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Cluster; /// /// TDD coverage for the typed fixture helpers used by /// state-changing Central UI Playwright E2E tests to provision and tear down /// templates, attributes, areas, and instances against the running dev cluster. /// When the cluster / MSSQL is unreachable the facts report as Skipped (not /// Failed), matching the established suite idiom. /// [Collection("Playwright")] public class CliRunnerHelpersTests { /// /// A freshly created template is discoverable by name prefix and can be /// deleted, exercising , /// , and /// as a round-trip. /// [SkippableFact] public async Task CreateThenDeleteTemplate_RoundTrips() { Skip.IfNot(await ClusterAvailability.IsAvailableAsync(), ClusterAvailability.SkipReason); var name = CliRunner.UniqueName("tmpl"); int id = await CliRunner.CreateTemplateAsync(name); try { var ids = await CliRunner.ListTemplateIdsByNamePrefixAsync(name); Assert.Contains(id, ids); } finally { await CliRunner.DeleteTemplateAsync(id); } } /// /// finds the well-known /// site-a seed site by its siteIdentifier and returns a /// positive id. /// [SkippableFact] public async Task ResolveSiteA_ReturnsId() { Skip.IfNot(await ClusterAvailability.IsAvailableAsync(), ClusterAvailability.SkipReason); Assert.True(await CliRunner.ResolveSiteIdAsync("site-a") > 0); } }