summaryrefslogtreecommitdiff
path: root/internal/processor
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-01 13:07:41 +0300
committerPaul Buetow <paul@buetow.org>2026-04-01 13:07:41 +0300
commit5b88a045b29970a3cc057326b85eae58ab41fe02 (patch)
tree2d70a826591d58b1b3349f95328b77409cd0267c /internal/processor
parentb006582e4c7323821eb836080a9bc9ec24243a47 (diff)
zr: restore OpenAI default translation provider
Diffstat (limited to 'internal/processor')
-rw-r--r--internal/processor/processor_test.go55
1 files changed, 55 insertions, 0 deletions
diff --git a/internal/processor/processor_test.go b/internal/processor/processor_test.go
index a9c9ab1..9e6b5fc 100644
--- a/internal/processor/processor_test.go
+++ b/internal/processor/processor_test.go
@@ -6,12 +6,20 @@ import (
"testing"
"codeberg.org/snonux/totalrecall/internal/cli"
+ "github.com/spf13/viper"
)
func TestNewProcessor(t *testing.T) {
t.Setenv("OPENAI_API_KEY", "test-openai-key")
t.Setenv("GOOGLE_API_KEY", "test-google-key")
+ originalConfig := viper.New()
+ *originalConfig = *viper.GetViper()
+ defer func() {
+ *viper.GetViper() = *originalConfig
+ }()
+ viper.Reset()
+
flags := cli.NewFlags()
p := NewProcessor(flags)
@@ -36,6 +44,53 @@ func TestNewProcessor(t *testing.T) {
}
}
+func TestNewProcessor_DefaultTranslationProviderUsesOpenAI(t *testing.T) {
+ t.Setenv("OPENAI_API_KEY", "")
+ t.Setenv("GOOGLE_API_KEY", "")
+
+ originalConfig := viper.New()
+ *originalConfig = *viper.GetViper()
+ defer func() {
+ *viper.GetViper() = *originalConfig
+ }()
+ viper.Reset()
+
+ flags := cli.NewFlags()
+ p := NewProcessor(flags)
+
+ _, err := p.translator.TranslateWord("ябълка")
+ if err == nil {
+ t.Fatal("Expected error for missing OpenAI API key")
+ }
+ if err.Error() != "OpenAI API key not found" {
+ t.Fatalf("Expected OpenAI default provider error, got: %v", err)
+ }
+}
+
+func TestNewProcessor_ExplicitGeminiTranslationProvider(t *testing.T) {
+ t.Setenv("OPENAI_API_KEY", "")
+ t.Setenv("GOOGLE_API_KEY", "")
+
+ originalConfig := viper.New()
+ *originalConfig = *viper.GetViper()
+ defer func() {
+ *viper.GetViper() = *originalConfig
+ }()
+ viper.Reset()
+ viper.Set("translation.provider", "gemini")
+
+ flags := cli.NewFlags()
+ p := NewProcessor(flags)
+
+ _, err := p.translator.TranslateWord("ябълка")
+ if err == nil {
+ t.Fatal("Expected error for missing Google API key")
+ }
+ if err.Error() != "Google API key not found" {
+ t.Fatalf("Expected Gemini provider error, got: %v", err)
+ }
+}
+
func TestProcessSingleWord_InvalidWord(t *testing.T) {
flags := cli.NewFlags()
flags.OutputDir = t.TempDir()