mirror of
https://github.com/keven1024/015.git
synced 2026-06-08 13:24:33 +00:00
feat(worker): implement multi-provider text translation service with Google, Microsoft, and custom LLM support
This commit is contained in:
72
worker/test/services/text_test.go
Normal file
72
worker/test/services/text_test.go
Normal file
@@ -0,0 +1,72 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"worker/internal/services"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
// --- Google Translate ---
|
||||
|
||||
func TestTranslateWithGoogle_EnToZhCN(t *testing.T) {
|
||||
result, err := services.TranslateText("Hello world", "auto", "zh-CN", "google")
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, result)
|
||||
t.Logf("en→zh-CN: %s", result)
|
||||
}
|
||||
|
||||
func TestTranslateWithGoogle_ZhCNToEn(t *testing.T) {
|
||||
result, err := services.TranslateText("你好世界", "zh-CN", "en", "google")
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, result)
|
||||
t.Logf("zh-CN→en: %s", result)
|
||||
}
|
||||
|
||||
func TestTranslateWithGoogle_AutoDetect(t *testing.T) {
|
||||
result, err := services.TranslateText("こんにちは", "auto", "en", "google")
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, result)
|
||||
t.Logf("auto(ja)→en: %s", result)
|
||||
}
|
||||
|
||||
func TestTranslateWithGoogle_LongText(t *testing.T) {
|
||||
text := "The quick brown fox jumps over the lazy dog. " +
|
||||
"This sentence contains every letter of the English alphabet. " +
|
||||
"It is commonly used for testing purposes."
|
||||
result, err := services.TranslateText(text, "en", "zh-CN", "google")
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, result)
|
||||
t.Logf("长文本→zh-CN: %s", result)
|
||||
}
|
||||
|
||||
// --- Microsoft Translator ---
|
||||
|
||||
func TestTranslateWithMicrosoft_EnToZhCN(t *testing.T) {
|
||||
result, err := services.TranslateText("Hello world", "auto", "zh-Hans", "microsoft")
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, result)
|
||||
t.Logf("en→zh-Hans: %s", result)
|
||||
}
|
||||
|
||||
func TestTranslateWithMicrosoft_ZhCNToEn(t *testing.T) {
|
||||
result, err := services.TranslateText("你好世界", "zh-Hans", "en", "microsoft")
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, result)
|
||||
t.Logf("zh-Hans→en: %s", result)
|
||||
}
|
||||
|
||||
func TestTranslateWithMicrosoft_AutoDetect(t *testing.T) {
|
||||
result, err := services.TranslateText("こんにちは", "auto", "en", "microsoft")
|
||||
require.NoError(t, err)
|
||||
assert.NotEmpty(t, result)
|
||||
t.Logf("auto(ja)→en: %s", result)
|
||||
}
|
||||
|
||||
// --- 通用 ---
|
||||
|
||||
func TestTranslateText_UnknownProvider(t *testing.T) {
|
||||
_, err := services.TranslateText("hello", "en", "zh-CN", "unknown_provider")
|
||||
assert.ErrorIs(t, err, services.ErrUnknownProvider)
|
||||
}
|
||||
Reference in New Issue
Block a user