From bd786426bf43ca02cb063f481ba43b5e1167d27b Mon Sep 17 00:00:00 2001 From: Codex Automation Date: Thu, 11 Jun 2026 15:58:50 +0200 Subject: [PATCH] Stabilize abort coordinator test --- .../RecordingCoordinatorTests.cs | 62 +++++++++++-------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/MeetingAssistant.Tests/RecordingCoordinatorTests.cs b/MeetingAssistant.Tests/RecordingCoordinatorTests.cs index c568ab2..3242b09 100644 --- a/MeetingAssistant.Tests/RecordingCoordinatorTests.cs +++ b/MeetingAssistant.Tests/RecordingCoordinatorTests.cs @@ -843,6 +843,7 @@ public sealed class RecordingCoordinatorTests }; var audioSource = new ControlledAudioSource(); var summaryPipeline = new CapturingMeetingSummaryPipeline(); + var metadataProvider = new BlockingMeetingMetadataProvider(new MeetingMetadata("", [], "")); var coordinator = new MeetingRecordingCoordinator( audioSource, new TestSpeechRecognitionPipelineFactory(new EchoStreamingTranscriptionProvider()), @@ -853,37 +854,44 @@ public sealed class RecordingCoordinatorTests new InMemoryRecordedAudioStore(), summaryPipeline, Options.Create(options), - NullLogger.Instance); + NullLogger.Instance, + meetingMetadataProvider: metadataProvider); - var started = await coordinator.StartAsync(CancellationToken.None); - await audioSource.WriteAsync(new AudioChunk([1, 0], 16000, 1), CancellationToken.None); - await WaitUntilAsync(() => - FileContainsText(started.AssistantContextPath!, "state: transcribing")); - var attachmentPath = Path.Combine( - Path.GetDirectoryName(started.AssistantContextPath!)!, - "Attachments", - "20260527-093135-123-000010-cropped.png"); - Directory.CreateDirectory(Path.GetDirectoryName(attachmentPath)!); - await File.WriteAllTextAsync(attachmentPath, "image"); - await AppendTextWithRetryAsync( - started.AssistantContextPath!, - Environment.NewLine + "![Cropped screenshot](Attachments/20260527-093135-123-000010-cropped.png)" + Environment.NewLine); - Directory.CreateDirectory(Path.GetDirectoryName(started.SummaryPath!)!); - await File.WriteAllTextAsync(started.SummaryPath!, "draft summary"); + try + { + var started = await coordinator.StartAsync(CancellationToken.None); + await audioSource.WriteAsync(new AudioChunk([1, 0], 16000, 1), CancellationToken.None); + await WaitUntilAsync(() => File.Exists(started.AssistantContextPath!)); + var attachmentPath = Path.Combine( + Path.GetDirectoryName(started.AssistantContextPath!)!, + "Attachments", + "20260527-093135-123-000010-cropped.png"); + Directory.CreateDirectory(Path.GetDirectoryName(attachmentPath)!); + await File.WriteAllTextAsync(attachmentPath, "image"); + await AppendTextWithRetryAsync( + started.AssistantContextPath!, + Environment.NewLine + "![Cropped screenshot](Attachments/20260527-093135-123-000010-cropped.png)" + Environment.NewLine); + Directory.CreateDirectory(Path.GetDirectoryName(started.SummaryPath!)!); + await File.WriteAllTextAsync(started.SummaryPath!, "draft summary"); - var aborted = await coordinator.AbortAsync(CancellationToken.None); + var aborted = await coordinator.AbortAsync(CancellationToken.None); - Assert.False(aborted.IsRecording); - Assert.Null(aborted.MeetingNotePath); - Assert.False(File.Exists(started.MeetingNotePath)); - Assert.False(File.Exists(started.TranscriptPath)); - Assert.False(File.Exists(started.AssistantContextPath)); - Assert.False(File.Exists(started.SummaryPath)); - Assert.False(File.Exists(attachmentPath)); - Assert.Null(summaryPipeline.Artifacts); + Assert.False(aborted.IsRecording); + Assert.Null(aborted.MeetingNotePath); + Assert.False(File.Exists(started.MeetingNotePath)); + Assert.False(File.Exists(started.TranscriptPath)); + Assert.False(File.Exists(started.AssistantContextPath)); + Assert.False(File.Exists(started.SummaryPath)); + Assert.False(File.Exists(attachmentPath)); + Assert.Null(summaryPipeline.Artifacts); - await Task.Delay(250); - Assert.False(File.Exists(started.AssistantContextPath)); + await Task.Delay(250); + Assert.False(File.Exists(started.AssistantContextPath)); + } + finally + { + metadataProvider.Release(); + } } [Fact]