Public Access
Implement meeting assistant v1
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user