namespace ZB.MOM.WW.ScadaBridge.Host.Tests;

/// <summary>
/// Serializes every fixture that boots a real host while depending on process-wide
/// state — the <c>DOTNET_ENVIRONMENT</c> role selector and the environment variables
/// <see cref="CentralDbTestEnvironment"/> sets.
///
/// <c>Program</c>'s configuration builder calls <c>AddEnvironmentVariables()</c> at an
/// unpredictable point during boot, so a sibling fixture's teardown (which restores or
/// clears those vars) can otherwise be observed mid-boot as a transient null. Since the
/// secrets adoption (G-4) three of those keys are <c>${secret:...}</c> references that
/// fail closed, which turns that race into a hard <c>SecretNotFoundException</c>.
/// xUnit runs classes in a shared collection sequentially, which removes the overlap.
///
/// Site-role fixtures are deliberately not members: they call
/// <c>Configuration.Sources.Clear()</c>, dropping the environment-variable provider, so
/// they neither read nor write the shared state and stay free to run in parallel.
///
/// Supersedes the narrower "ActorSystem" collection, whose members are folded in here.
/// </summary>
[CollectionDefinition(HostBootCollection.Name)]
public class HostBootCollection
{
    public const string Name = "HostBoot";
}
