refactor elevenlabs adapter to use EndpointConfig
This commit is contained in:
@@ -3,9 +3,44 @@ package transcriber
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/leonardotrapani/hyprvoice/internal/provider"
|
||||
)
|
||||
|
||||
func TestNewElevenLabsAdapter(t *testing.T) {
|
||||
endpoint := &provider.EndpointConfig{
|
||||
BaseURL: "https://api.elevenlabs.io",
|
||||
Path: "/v1/speech-to-text",
|
||||
}
|
||||
|
||||
adapter := NewElevenLabsAdapter(endpoint, "test-api-key", "scribe_v1", "en")
|
||||
|
||||
if adapter == nil {
|
||||
t.Fatalf("NewElevenLabsAdapter() returned nil")
|
||||
}
|
||||
|
||||
if adapter.apiKey != "test-api-key" {
|
||||
t.Errorf("APIKey not set correctly, got: %s", adapter.apiKey)
|
||||
}
|
||||
|
||||
if adapter.model != "scribe_v1" {
|
||||
t.Errorf("Model not set correctly, got: %s", adapter.model)
|
||||
}
|
||||
|
||||
if adapter.language != "en" {
|
||||
t.Errorf("Language not set correctly, got: %s", adapter.language)
|
||||
}
|
||||
|
||||
if adapter.endpoint.BaseURL != "https://api.elevenlabs.io" {
|
||||
t.Errorf("Endpoint BaseURL not set correctly, got: %s", adapter.endpoint.BaseURL)
|
||||
}
|
||||
|
||||
if adapter.endpoint.Path != "/v1/speech-to-text" {
|
||||
t.Errorf("Endpoint Path not set correctly, got: %s", adapter.endpoint.Path)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewElevenLabsAdapterFromConfig(t *testing.T) {
|
||||
config := Config{
|
||||
Provider: "elevenlabs",
|
||||
APIKey: "test-api-key",
|
||||
@@ -13,29 +48,33 @@ func TestNewElevenLabsAdapter(t *testing.T) {
|
||||
Model: "scribe_v1",
|
||||
}
|
||||
|
||||
adapter := NewElevenLabsAdapter(config)
|
||||
adapter := NewElevenLabsAdapterFromConfig(config)
|
||||
|
||||
if adapter == nil {
|
||||
t.Fatalf("NewElevenLabsAdapter() returned nil")
|
||||
t.Fatalf("NewElevenLabsAdapterFromConfig() returned nil")
|
||||
}
|
||||
|
||||
if adapter.config.APIKey != "test-api-key" {
|
||||
t.Errorf("APIKey not set correctly, got: %s", adapter.config.APIKey)
|
||||
if adapter.apiKey != "test-api-key" {
|
||||
t.Errorf("APIKey not set correctly, got: %s", adapter.apiKey)
|
||||
}
|
||||
|
||||
if adapter.config.Model != "scribe_v1" {
|
||||
t.Errorf("Model not set correctly, got: %s", adapter.config.Model)
|
||||
if adapter.model != "scribe_v1" {
|
||||
t.Errorf("Model not set correctly, got: %s", adapter.model)
|
||||
}
|
||||
|
||||
// should use default endpoint
|
||||
if adapter.endpoint.BaseURL != "https://api.elevenlabs.io" {
|
||||
t.Errorf("Default endpoint BaseURL not set correctly, got: %s", adapter.endpoint.BaseURL)
|
||||
}
|
||||
}
|
||||
|
||||
func TestElevenLabsAdapter_Transcribe_EmptyAudio(t *testing.T) {
|
||||
config := Config{
|
||||
Provider: "elevenlabs",
|
||||
APIKey: "test-key",
|
||||
Model: "scribe_v1",
|
||||
endpoint := &provider.EndpointConfig{
|
||||
BaseURL: "https://api.elevenlabs.io",
|
||||
Path: "/v1/speech-to-text",
|
||||
}
|
||||
|
||||
adapter := NewElevenLabsAdapter(config)
|
||||
adapter := NewElevenLabsAdapter(endpoint, "test-key", "scribe_v1", "")
|
||||
ctx := context.Background()
|
||||
|
||||
result, err := adapter.Transcribe(ctx, []byte{})
|
||||
@@ -50,22 +89,18 @@ func TestElevenLabsAdapter_Transcribe_EmptyAudio(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestElevenLabsAdapter_Transcribe_ValidAudio(t *testing.T) {
|
||||
// This test will require mocking the HTTP client
|
||||
// For now, we test the structure exists
|
||||
config := Config{
|
||||
Provider: "elevenlabs",
|
||||
APIKey: "test-key",
|
||||
Language: "en",
|
||||
Model: "scribe_v1",
|
||||
endpoint := &provider.EndpointConfig{
|
||||
BaseURL: "https://api.elevenlabs.io",
|
||||
Path: "/v1/speech-to-text",
|
||||
}
|
||||
|
||||
adapter := NewElevenLabsAdapter(config)
|
||||
adapter := NewElevenLabsAdapter(endpoint, "test-key", "scribe_v1", "en")
|
||||
|
||||
if adapter == nil {
|
||||
t.Fatal("NewElevenLabsAdapter() returned nil")
|
||||
}
|
||||
|
||||
// Test that adapter has a client
|
||||
// test that adapter has a client
|
||||
if adapter.client == nil {
|
||||
t.Error("adapter.client is nil")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user