79 lines
2.0 KiB
Go
79 lines
2.0 KiB
Go
package collect
|
||
|
||
import (
|
||
"context"
|
||
"geo/internal/collect"
|
||
"geo/internal/config"
|
||
"testing"
|
||
|
||
"github.com/gofiber/fiber/v2/log"
|
||
)
|
||
|
||
var (
|
||
deepseekCfg, _ = config.LoadConfig()
|
||
|
||
deepseekManager = collect.NewCollectManager(context.Background(), deepseekCfg, log.DefaultLogger())
|
||
)
|
||
|
||
// TestDeepseekCollector_WaitLogin 测试DeepSeek登录功能
|
||
func TestDeepseekCollector_WaitLogin(t *testing.T) {
|
||
if testing.Short() {
|
||
t.Skip("跳过需要浏览器交互的测试")
|
||
}
|
||
|
||
params := &collect.CollectParams{
|
||
Headless: false, // 显示浏览器窗口以便扫码登录
|
||
RequestID: "test_deepseek_login_001",
|
||
Platform: "deepseek",
|
||
}
|
||
|
||
t.Log("开始测试DeepSeek登录...")
|
||
t.Log("请在打开的浏览器窗口中完成DeepSeek账号登录(扫码或输入账号密码)")
|
||
|
||
success, msg := deepseekManager.WaitLogin("deepseek", params)
|
||
|
||
if !success {
|
||
t.Errorf("DeepSeek登录失败: %s", msg)
|
||
return
|
||
}
|
||
|
||
t.Logf("DeepSeek登录成功: %s", msg)
|
||
t.Log("Cookie已保存,后续测试可以使用已登录状态")
|
||
}
|
||
|
||
// TestDeepseekCollector_AskQuestion 测试DeepSeek提问功能
|
||
// 注意:此测试需要有效的登录状态
|
||
func TestDeepseekCollector_AskQuestion(t *testing.T) {
|
||
if testing.Short() {
|
||
t.Skip("跳过需要浏览器交互的测试")
|
||
}
|
||
|
||
// 设置收集参数
|
||
params := &collect.CollectParams{
|
||
Headless: false, // 显示浏览器以便调试
|
||
RequestID: "test_deepseek_001",
|
||
Platform: "deepseek",
|
||
KeyWords: []string{"AI", "人工智能"}, // 测试关键词高亮
|
||
}
|
||
|
||
// 定义提问内容
|
||
question := "什么是人工智能?"
|
||
t.Logf("向DeepSeek提问: %s", question)
|
||
|
||
// 调用管理器提问并获取答案
|
||
result, err := deepseekManager.AskQuestion("deepseek", params, question)
|
||
if err != nil {
|
||
t.Errorf("提问失败: %v", err)
|
||
return
|
||
}
|
||
|
||
t.Logf("获取到答案:\n%s", result.Answer)
|
||
t.Logf("分享链接: %s", result.ShareLink)
|
||
t.Logf("是否包含关键词: %v", result.IsExposure)
|
||
|
||
// 验证答案非空
|
||
if len(result.Answer) == 0 {
|
||
t.Error("答案为空")
|
||
}
|
||
}
|