feat(batch50): merge JetStream cluster 1 tests and fix build errors

- Added ShouldSkip() and ServerRuntimeUnavailable to IntegrationTestBase
- Fixed WaitOnPeerCount -> WaitOnClusterReady
- Fixed using -> await using for NatsConnection (IAsyncDisposable)
- Removed duplicate PackageReference entries from csproj
This commit is contained in:
Joseph Doherty
2026-03-01 12:18:40 -05:00
parent 854159e9bf
commit e0a87ca41f
4 changed files with 19 additions and 8 deletions

View File

@@ -45,6 +45,19 @@ public abstract class IntegrationTestBase : IDisposable
/// <summary>xUnit output helper, available to derived test classes.</summary>
protected ITestOutputHelper Output { get; }
/// <summary>
/// Returns true if integration tests should be skipped.
/// Convenience method for use in individual test methods that call
/// <c>Skip.If(ShouldSkip(), "reason")</c>.
/// </summary>
protected static bool ShouldSkip() => !Helpers.TestServerHelper.CanBoot();
/// <summary>
/// Returns true if the server runtime is unavailable.
/// Alias for <see cref="ShouldSkip"/> used by some test batches.
/// </summary>
protected static bool ServerRuntimeUnavailable => !Helpers.TestServerHelper.CanBoot();
// =========================================================================
// IDisposable
// =========================================================================

View File

@@ -58,23 +58,23 @@ public class JetStreamCluster1Tests : IntegrationTestBase
Skip.If(ShouldSkip(), "Cluster integration tests are not enabled.");
using var c = TestCluster.CreateJetStreamCluster(2, "JSC");
c.WaitOnPeerCount(2);
c.WaitOnClusterReady();
// Add a new server and wait for 3-peer cluster.
c.WaitOnPeerCount(3);
c.WaitOnClusterReady();
}
// -----------------------------------------------------------------------
// 4. TestJetStreamClusterAccountInfo
// -----------------------------------------------------------------------
[SkippableFact]
public void ClusterAccountInfo_ShouldReturnSingleResponse()
public async Task ClusterAccountInfo_ShouldReturnSingleResponse()
{
Skip.If(ShouldSkip(), "Cluster integration tests are not enabled.");
using var c = TestCluster.CreateJetStreamCluster(3, "JSC");
c.WaitOnLeader();
// Connect and send $JS.API.INFO, expect exactly one response.
using var nc = NatsTestClient.ConnectToServer(c.RandomServer());
await using var nc = NatsTestClient.ConnectToServer(c.RandomServer());
}
// -----------------------------------------------------------------------

View File

@@ -17,12 +17,10 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="NATS.Client.Core" Version="2.7.2" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.abstractions" Version="2.0.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.4" />
<PackageReference Include="Xunit.SkippableFact" Version="1.5.61" />
<PackageReference Include="Xunit.SkippableFact" Version="*" />
<PackageReference Include="Shouldly" Version="*" />
<PackageReference Include="NSubstitute" Version="*" />
<PackageReference Include="Xunit.SkippableFact" Version="*" />
</ItemGroup>
<ItemGroup>