summaryrefslogtreecommitdiff
path: root/internal/gui/app_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/gui/app_test.go')
-rw-r--r--internal/gui/app_test.go86
1 files changed, 86 insertions, 0 deletions
diff --git a/internal/gui/app_test.go b/internal/gui/app_test.go
new file mode 100644
index 0000000..c89ebee
--- /dev/null
+++ b/internal/gui/app_test.go
@@ -0,0 +1,86 @@
+package gui
+
+import (
+ "testing"
+
+ "codeberg.org/snonux/totalrecall/internal/translation"
+)
+
+func TestDefaultConfigPrefersGeminiTranslationProvider(t *testing.T) {
+ config := DefaultConfig()
+
+ if config.TranslationProvider != translation.ProviderGemini {
+ t.Fatalf("DefaultConfig() translation provider = %q, want %q", config.TranslationProvider, translation.ProviderGemini)
+ }
+}
+
+func TestTranslationConfigForApp(t *testing.T) {
+ t.Parallel()
+
+ tests := []struct {
+ name string
+ config *Config
+ wantProv translation.Provider
+ wantOpen string
+ wantGoogle string
+ }{
+ {
+ name: "default to gemini when google key is available",
+ config: &Config{
+ GoogleAPIKey: "google-key",
+ },
+ wantProv: translation.ProviderGemini,
+ wantOpen: "",
+ wantGoogle: "google-key",
+ },
+ {
+ name: "fallback to openai when only openai key is available",
+ config: &Config{
+ OpenAIKey: "openai-key",
+ },
+ wantProv: translation.ProviderOpenAI,
+ wantOpen: "openai-key",
+ wantGoogle: "",
+ },
+ {
+ name: "honor explicit gemini provider",
+ config: &Config{
+ TranslationProvider: translation.ProviderGemini,
+ GoogleAPIKey: "google-key",
+ OpenAIKey: "openai-key",
+ },
+ wantProv: translation.ProviderGemini,
+ wantOpen: "openai-key",
+ wantGoogle: "google-key",
+ },
+ {
+ name: "honor explicit openai provider",
+ config: &Config{
+ TranslationProvider: translation.ProviderOpenAI,
+ OpenAIKey: "openai-key",
+ GoogleAPIKey: "google-key",
+ },
+ wantProv: translation.ProviderOpenAI,
+ wantOpen: "openai-key",
+ wantGoogle: "google-key",
+ },
+ }
+
+ for _, tt := range tests {
+ tt := tt
+ t.Run(tt.name, func(t *testing.T) {
+ t.Parallel()
+
+ got := translationConfigForApp(tt.config)
+ if got.Provider != tt.wantProv {
+ t.Fatalf("Provider = %q, want %q", got.Provider, tt.wantProv)
+ }
+ if got.OpenAIKey != tt.wantOpen {
+ t.Fatalf("OpenAIKey = %q, want %q", got.OpenAIKey, tt.wantOpen)
+ }
+ if got.GoogleAPIKey != tt.wantGoogle {
+ t.Fatalf("GoogleAPIKey = %q, want %q", got.GoogleAPIKey, tt.wantGoogle)
+ }
+ })
+ }
+}