Files
ScadaBridge/tests/ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests/Cluster/CliRunnerSmokeTests.cs
T
2026-06-05 09:56:47 -04:00

29 lines
1.2 KiB
C#

using System.Text.Json;
using Xunit;
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Cluster;
/// <summary>
/// TDD smoke coverage for <see cref="CliRunner"/> and
/// <see cref="ClusterAvailability"/>. Confirms the subprocess runner can locate
/// the built <c>scadabridge.dll</c>, shell out through <c>dotnet</c>, and parse
/// the JSON the CLI prints to stdout. When the dev cluster / MSSQL is unreachable
/// the fact reports as Skipped (not Failed), matching the established
/// <c>ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Tests</c> idiom.
/// </summary>
[Collection("Playwright")]
public class CliRunnerSmokeTests
{
/// <summary>
/// <c>scadabridge site list</c> round-trips through the CLI and returns a
/// JSON document (the CLI emits a JSON array of sites in <c>--format json</c>).
/// </summary>
[SkippableFact]
public async Task SiteList_ReturnsJson()
{
Skip.IfNot(await ClusterAvailability.IsAvailableAsync(), ClusterAvailability.SkipReason);
using var doc = await CliRunner.RunJsonAsync("site", "list");
Assert.True(doc.RootElement.ValueKind is JsonValueKind.Array or JsonValueKind.Object);
}
}