namespace NeonSprawl.Server.Tests.Game.PositionState; /// Skips unless ConnectionStrings__NeonSprawl is set; fails in CI if missing so misconfigured workflows do not silently pass. public sealed class RequirePostgresFactAttribute : FactAttribute { public RequirePostgresFactAttribute() { var cs = Environment.GetEnvironmentVariable("ConnectionStrings__NeonSprawl"); var inCi = string.Equals(Environment.GetEnvironmentVariable("CI"), "true", StringComparison.Ordinal); if (!string.IsNullOrWhiteSpace(cs)) { return; } if (inCi) { throw new InvalidOperationException( "CI must set ConnectionStrings__NeonSprawl for Postgres integration tests."); } Skip = "Set ConnectionStrings__NeonSprawl to run Postgres integration tests (see server/README.md)."; } }