using AcDream.App.Composition; using AcDream.App.Net; namespace AcDream.App.Tests.Composition; public sealed class SessionStartCompositionTests { [Fact] public void DiagnosticsPreserveMissingCredentialAndFailureMessagesOnly() { var messages = new List(); SessionStartCompositionPhase.Report( new LiveSessionStartResult( LiveSessionStartStatus.MissingCredentials), messages.Add); SessionStartCompositionPhase.Report( new LiveSessionStartResult( LiveSessionStartStatus.Failed, Error: new InvalidOperationException("boom")), messages.Add); SessionStartCompositionPhase.Report( new LiveSessionStartResult(LiveSessionStartStatus.Disabled), messages.Add); SessionStartCompositionPhase.Report( new LiveSessionStartResult(LiveSessionStartStatus.Connected), messages.Add); Assert.Equal(2, messages.Count); Assert.Equal( "live: ACDREAM_LIVE set but TEST_USER/TEST_PASS missing; skipping", messages[0]); Assert.StartsWith( "live: session failed: System.InvalidOperationException: boom", messages[1], StringComparison.Ordinal); } }