//go:build monterey_compat
|
|
package services
|
|
import (
|
"strings"
|
"testing"
|
|
"voicesnap/internal/config"
|
"voicesnap/internal/language"
|
"voicesnap/internal/model"
|
"voicesnap/internal/modelselection"
|
)
|
|
func TestQwen3ASRVisibleButDisabledInMontereyCompatBuild(t *testing.T) {
|
cfg := config.Default()
|
cfg.LanguageMode = config.LanguageModeManual
|
cfg.LanguageID = model.DefaultLanguageID
|
service := NewEngineService(cfg)
|
profile, err := model.GetModelProfile(model.Qwen3ASRModelID)
|
if err != nil {
|
t.Fatal(err)
|
}
|
|
status := service.modelStatusMap(profile, modelselection.CurrentModel{
|
ModelID: model.DefaultModelID,
|
Profile: model.DefaultModelProfile(),
|
SelectionMode: config.ModelSelectionModeAuto,
|
LanguageSettings: language.Resolve(config.LanguageModeManual, model.DefaultLanguageID, nil),
|
})
|
|
if got := status["modelID"]; got != model.Qwen3ASRModelID {
|
t.Fatalf("modelID = %v, want %s", got, model.Qwen3ASRModelID)
|
}
|
if got := status["supportedInBuild"]; got != false {
|
t.Fatalf("supportedInBuild = %v, want false", got)
|
}
|
if got := status["unsupportedReason"]; got != model.UnsupportedReasonRequiresMacOS14 {
|
t.Fatalf("unsupportedReason = %v, want %s", got, model.UnsupportedReasonRequiresMacOS14)
|
}
|
if _, err := service.allowedModelProfile(model.Qwen3ASRModelID); err == nil {
|
t.Fatal("expected qwen3-asr to be rejected in Monterey compatibility build")
|
} else if !strings.Contains(err.Error(), "macOS 14") {
|
t.Fatalf("error = %q, want macOS 14 reason", err.Error())
|
}
|
}
|