From 7eb0b4196ce15c8bfbb0514c54b51cf019c78d24 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Tue, 23 Jun 2026 13:15:33 +0800
Subject: [PATCH] Prepare 2.1.34 input settings QA build

---
 privatevoice.src/internal/modelselection/selection_test.go |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 52 insertions(+), 0 deletions(-)

diff --git a/privatevoice.src/internal/modelselection/selection_test.go b/privatevoice.src/internal/modelselection/selection_test.go
index 409a0fc..96875d9 100644
--- a/privatevoice.src/internal/modelselection/selection_test.go
+++ b/privatevoice.src/internal/modelselection/selection_test.go
@@ -40,6 +40,43 @@
 	}
 }
 
+func TestResolveAutoUsesEuropeanDefaultModel(t *testing.T) {
+	cfg := config.Default()
+	cfg.LanguageMode = config.LanguageModeAuto
+	cfg.ModelSelectionMode = config.ModelSelectionModeAuto
+
+	current := Resolve(cfg, fakeDetector{locale: "fr-FR"})
+	if current.ModelID != model.ParakeetV3ModelID {
+		t.Fatalf("model id = %q, want %q", current.ModelID, model.ParakeetV3ModelID)
+	}
+	if current.Profile.BackendKind != model.BackendNemoTransducer {
+		t.Fatalf("backend = %q, want %q", current.Profile.BackendKind, model.BackendNemoTransducer)
+	}
+}
+
+func TestResolveAutoUsesJapaneseAndKoreanDefaults(t *testing.T) {
+	tests := []struct {
+		locale  string
+		modelID string
+	}{
+		{"ja-JP", model.JapaneseModelID},
+		{"ko-KR", model.KoreanModelID},
+	}
+	for _, tt := range tests {
+		cfg := config.Default()
+		cfg.LanguageMode = config.LanguageModeAuto
+		cfg.ModelSelectionMode = config.ModelSelectionModeAuto
+
+		current := Resolve(cfg, fakeDetector{locale: tt.locale})
+		if current.ModelID != tt.modelID {
+			t.Fatalf("%s model id = %q, want %q", tt.locale, current.ModelID, tt.modelID)
+		}
+		if current.Profile.BackendKind != model.BackendTransducer {
+			t.Fatalf("%s backend = %q, want %q", tt.locale, current.Profile.BackendKind, model.BackendTransducer)
+		}
+	}
+}
+
 func TestResolveOldConfigMissingSelectionModeUsesAuto(t *testing.T) {
 	cfg := config.Default()
 	cfg.LanguageMode = config.LanguageModeAuto
@@ -133,6 +170,21 @@
 	}
 }
 
+func TestResolveManualParakeetV3FallsBackForJapanese(t *testing.T) {
+	cfg := config.Default()
+	cfg.LanguageMode = config.LanguageModeAuto
+	cfg.ModelSelectionMode = config.ModelSelectionModeManual
+	cfg.SelectedModelID = model.ParakeetV3ModelID
+
+	current := Resolve(cfg, fakeDetector{locale: "ja-JP"})
+	if current.ModelID != model.JapaneseModelID {
+		t.Fatalf("model id = %q, want Japanese default %q", current.ModelID, model.JapaneseModelID)
+	}
+	if current.FallbackReason == "" {
+		t.Fatal("expected fallback reason")
+	}
+}
+
 func TestResolveInvalidManualFallsBackToLanguageDefault(t *testing.T) {
 	cfg := config.Default()
 	cfg.LanguageMode = config.LanguageModeAuto

--
Gitblit v1.9.3