save progress
This commit is contained in:
@@ -90,11 +90,9 @@ public abstract class ConnectorSecurityTestBase : IDisposable
|
||||
[Fact]
|
||||
public virtual async Task HttpsToHttpDowngrade_IsRejected()
|
||||
{
|
||||
// Setup a redirect from HTTPS to HTTP
|
||||
var secureUrl = "https://secure.example.com/api";
|
||||
// The connector should reject HTTP URLs or prevent HTTPS->HTTP redirects
|
||||
var insecureUrl = "http://secure.example.com/api";
|
||||
|
||||
// The connector should reject HTTP URLs or prevent HTTPS->HTTP redirects
|
||||
var (allowed, _) = await TryFetchUrlAsync(insecureUrl);
|
||||
|
||||
allowed.Should().BeFalse(
|
||||
|
||||
@@ -85,7 +85,8 @@ public sealed class ValkeyFixture : IAsyncLifetime, IDisposable
|
||||
_container = new ContainerBuilder()
|
||||
.WithImage("redis:7-alpine")
|
||||
.WithPortBinding(6379, true) // Bind to random host port
|
||||
.WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(6379))
|
||||
.WithWaitStrategy(Wait.ForUnixContainer()
|
||||
.UntilCommandIsCompleted("redis-cli", "ping"))
|
||||
.Build();
|
||||
|
||||
await _container.StartAsync();
|
||||
|
||||
@@ -8,17 +8,19 @@
|
||||
<Description>Testing infrastructure and utilities for StellaOps</Description>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="xunit" Version="2.9.2" />
|
||||
<PackageReference Include="FluentAssertions" Version="6.12.0" />
|
||||
<PackageReference Include="FsCheck" Version="2.16.6" />
|
||||
<PackageReference Include="FsCheck.Xunit" Version="2.16.6" />
|
||||
<PackageReference Include="Testcontainers" Version="3.10.0" />
|
||||
<PackageReference Include="Testcontainers.PostgreSql" Version="3.10.0" />
|
||||
<PackageReference Include="Npgsql" Version="8.0.5" />
|
||||
<PackageReference Include="StackExchange.Redis" Version="2.8.16" />
|
||||
<PackageReference Include="OpenTelemetry" Version="1.9.0" />
|
||||
<PackageReference Include="OpenTelemetry.Api" Version="1.9.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.0" />
|
||||
<PackageReference Include="xunit" PrivateAssets="all" />
|
||||
<PackageReference Include="xunit.extensibility.core" PrivateAssets="all" />
|
||||
<PackageReference Include="xunit.assert" PrivateAssets="all" />
|
||||
<PackageReference Include="FluentAssertions" />
|
||||
<PackageReference Include="FsCheck" />
|
||||
<PackageReference Include="FsCheck.Xunit" PrivateAssets="all" />
|
||||
<PackageReference Include="Testcontainers" />
|
||||
<PackageReference Include="Testcontainers.PostgreSql" />
|
||||
<PackageReference Include="Npgsql" />
|
||||
<PackageReference Include="StackExchange.Redis" />
|
||||
<PackageReference Include="OpenTelemetry" />
|
||||
<PackageReference Include="OpenTelemetry.Api" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\StellaOps.Canonical.Json\StellaOps.Canonical.Json.csproj" />
|
||||
|
||||
@@ -104,4 +104,28 @@ public static class TestCategories
|
||||
/// Observability tests: OpenTelemetry traces, metrics, structured logging validation.
|
||||
/// </summary>
|
||||
public const string Observability = "Observability";
|
||||
|
||||
// =========================================================================
|
||||
// Storage-specific categories
|
||||
// =========================================================================
|
||||
|
||||
/// <summary>
|
||||
/// Storage concurrency tests: Race conditions, concurrent access, locking behavior.
|
||||
/// </summary>
|
||||
public const string StorageConcurrency = "StorageConcurrency";
|
||||
|
||||
/// <summary>
|
||||
/// Storage idempotency tests: Duplicate operations, retries produce same result.
|
||||
/// </summary>
|
||||
public const string StorageIdempotency = "StorageIdempotency";
|
||||
|
||||
/// <summary>
|
||||
/// Query determinism tests: Same inputs produce stable ordering, repeated queries return consistent results.
|
||||
/// </summary>
|
||||
public const string QueryDeterminism = "QueryDeterminism";
|
||||
|
||||
/// <summary>
|
||||
/// Storage migration tests: Schema migrations, versioning, idempotent migration application.
|
||||
/// </summary>
|
||||
public const string StorageMigration = "StorageMigration";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user