fix: tests in ci

This commit is contained in:
leonardotrapani
2026-02-01 22:34:44 +01:00
parent 305f64a73d
commit 500b84caec
3 changed files with 30 additions and 5 deletions
+1
View File
@@ -12,6 +12,7 @@ Press a toggle key, speak, and get instant text input. Built natively for Waylan
- Toggle workflow with optional status notifications and cancel support. - Toggle workflow with optional status notifications and cancel support.
- Text injection via ydotool, wtype, and clipboard fallback with clipboard restore. - Text injection via ydotool, wtype, and clipboard fallback with clipboard restore.
- Guided onboarding and a full configure menu with hot-reload. - Guided onboarding and a full configure menu with hot-reload.
- Personalization through custom prompt and keywords sent both to LLM and to voice model.
## Voice Providers and Models ## Voice Providers and Models
+5 -5
View File
@@ -36,17 +36,17 @@ func (a *WhisperCppAdapter) Transcribe(ctx context.Context, audioData []byte) (s
return "", nil return "", nil
} }
// check model file exists
if _, err := os.Stat(a.modelPath); os.IsNotExist(err) {
return "", fmt.Errorf("model file not found: %s", a.modelPath)
}
// check whisper-cli exists // check whisper-cli exists
whisperPath, err := exec.LookPath("whisper-cli") whisperPath, err := exec.LookPath("whisper-cli")
if err != nil { if err != nil {
return "", fmt.Errorf("whisper-cli not found: install whisper.cpp first") return "", fmt.Errorf("whisper-cli not found: install whisper.cpp first")
} }
// check model file exists
if _, err := os.Stat(a.modelPath); os.IsNotExist(err) {
return "", fmt.Errorf("model file not found: %s", a.modelPath)
}
// convert raw PCM to WAV // convert raw PCM to WAV
wavData, err := convertToWAV(audioData) wavData, err := convertToWAV(audioData)
if err != nil { if err != nil {
@@ -3,6 +3,7 @@ package transcriber
import ( import (
"context" "context"
"os" "os"
"os/exec"
"path/filepath" "path/filepath"
"testing" "testing"
) )
@@ -38,6 +39,29 @@ func TestWhisperCppAdapter_MissingModel(t *testing.T) {
} }
} }
func TestWhisperCppAdapter_MissingCli(t *testing.T) {
if _, err := exec.LookPath("whisper-cli"); err == nil {
t.Skip("whisper-cli is installed")
}
tmpDir := t.TempDir()
modelPath := filepath.Join(tmpDir, "model.bin")
if err := os.WriteFile(modelPath, []byte("fake"), 0600); err != nil {
t.Fatalf("failed to create model: %v", err)
}
adapter := NewWhisperCppAdapter(modelPath, "en", 4)
audioData := make([]byte, 32000)
_, err := adapter.Transcribe(context.Background(), audioData)
if err == nil {
t.Error("expected error for missing whisper-cli")
}
if err != nil && !contains(err.Error(), "whisper-cli not found") {
t.Errorf("expected 'whisper-cli not found' error, got: %v", err)
}
}
func TestWhisperCppAdapter_LanguageConversion(t *testing.T) { func TestWhisperCppAdapter_LanguageConversion(t *testing.T) {
// verify adapter stores language for later conversion // verify adapter stores language for later conversion
adapter := NewWhisperCppAdapter("/fake/model.bin", "", 4) adapter := NewWhisperCppAdapter("/fake/model.bin", "", 4)