fix: tests in ci
This commit is contained in:
@@ -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.
|
||||
- Text injection via ydotool, wtype, and clipboard fallback with clipboard restore.
|
||||
- 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
|
||||
|
||||
|
||||
@@ -36,17 +36,17 @@ func (a *WhisperCppAdapter) Transcribe(ctx context.Context, audioData []byte) (s
|
||||
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
|
||||
whisperPath, err := exec.LookPath("whisper-cli")
|
||||
if err != nil {
|
||||
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
|
||||
wavData, err := convertToWAV(audioData)
|
||||
if err != nil {
|
||||
|
||||
@@ -3,6 +3,7 @@ package transcriber
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"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) {
|
||||
// verify adapter stores language for later conversion
|
||||
adapter := NewWhisperCppAdapter("/fake/model.bin", "", 4)
|
||||
|
||||
Reference in New Issue
Block a user