save progress

This commit is contained in:
StellaOps Bot
2025-12-26 22:03:32 +02:00
parent 9a4cd2e0f7
commit e6c47c8f50
3634 changed files with 253222 additions and 56632 deletions

View File

@@ -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(

View File

@@ -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();

View File

@@ -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" />

View File

@@ -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";
}