Files
meeting-assistant/MeetingAssistant.Tests/AzureSpeechStreamingTranscriptionProviderTests.cs
T
2026-05-20 02:06:16 +02:00

40 lines
1.3 KiB
C#

using MeetingAssistant.Recording;
using MeetingAssistant.Transcription;
using Microsoft.Extensions.Logging.Abstractions;
using Microsoft.Extensions.Options;
namespace MeetingAssistant.Tests;
public sealed class AzureSpeechStreamingTranscriptionProviderTests
{
[Fact]
public async Task TranscribeFailsClearlyWhenKeyIsMissing()
{
var provider = new AzureSpeechStreamingTranscriptionProvider(
Options.Create(new MeetingAssistantOptions
{
AzureSpeech = new AzureSpeechOptions
{
Region = "germanywestcentral",
KeyEnv = $"MEETING_ASSISTANT_MISSING_AZURE_KEY_{Guid.NewGuid():N}"
}
}),
NullLogger<AzureSpeechStreamingTranscriptionProvider>.Instance);
var exception = await Assert.ThrowsAsync<InvalidOperationException>(async () =>
{
await foreach (var _ in provider.TranscribeAsync(ReadSingleChunk(), CancellationToken.None))
{
}
});
Assert.Contains("Azure Speech key is not configured", exception.Message);
}
private static async IAsyncEnumerable<AudioChunk> ReadSingleChunk()
{
await Task.Yield();
yield return new AudioChunk(new byte[320], 16000, 1);
}
}