chore: import clean Agent Desk snapshot (1/7)

This commit is contained in:
2026-10-16 11:55:22 +00:00
parent 24f6423407
commit 79176541c7
323 changed files with 34882 additions and 2 deletions

95
cmd/testdata/channel/init.go vendored Normal file
View File

@@ -0,0 +1,95 @@
package channel
import (
"agent-desk/cmd/testdata/seedlang"
"agent-desk/cmd/testdata/seeds"
"agent-desk/internal/models"
"agent-desk/internal/pkg/enums"
"agent-desk/internal/repositories"
"fmt"
"time"
"github.com/mlogclub/simple/common/strs"
"github.com/mlogclub/simple/sqls"
)
type InitResult struct {
Created int
Updated int
}
// Init 初始化 Channel 测试数据。
// 依赖于 AI Agent 已初始化。
func Init(lang seedlang.Language) (*InitResult, error) {
result := &InitResult{}
aiAgentID, err := getDefaultAIAgentID()
if err != nil {
return result, fmt.Errorf("get default ai agent id failed: %w", err)
}
if aiAgentID == 0 {
return result, fmt.Errorf("no default ai agent found, please init ai agent first")
}
seedItems := buildModels(lang, aiAgentID)
for _, item := range seedItems {
itemCopy := item
if err := sqls.WithTransaction(func(ctx *sqls.TxContext) error {
existing := repositories.ChannelRepository.Take(ctx.Tx, "name = ? AND channel_type = ?", itemCopy.Name, itemCopy.ChannelType)
if existing != nil {
if err := ctx.Tx.Model(existing).Updates(&itemCopy).Error; err != nil {
return err
}
result.Updated++
} else {
if err := ctx.Tx.Create(&itemCopy).Error; err != nil {
return err
}
result.Created++
}
return nil
}); err != nil {
return nil, fmt.Errorf("upsert channel failed: %w", err)
}
}
return result, nil
}
func buildModels(lang seedlang.Language, aiAgentID int64) []models.Channel {
now := time.Now()
seedItems := seeds.ChannelSeeds(lang)
items := make([]models.Channel, 0, len(seedItems))
for _, seed := range seedItems {
items = append(items, models.Channel{
Name: seed.Name,
ChannelType: seed.ChannelType,
ChannelID: strs.UUID(),
AIAgentID: aiAgentID,
ConfigJSON: seed.ConfigJSON,
Status: enums.StatusOk,
Remark: seed.Remark,
AuditFields: models.AuditFields{
CreatedAt: now,
CreateUserID: 0,
CreateUserName: "System",
UpdatedAt: now,
UpdateUserID: 0,
UpdateUserName: "System",
},
})
}
return items
}
func getDefaultAIAgentID() (int64, error) {
aiAgent := repositories.AIAgentRepository.Take(
sqls.DB(),
"status = ?",
enums.StatusOk,
)
if aiAgent == nil {
return 0, nil
}
return aiAgent.ID, nil
}

21
cmd/testdata/channel/init_test.go vendored Normal file
View File

@@ -0,0 +1,21 @@
package channel
import (
"agent-desk/cmd/testdata/seedlang"
"agent-desk/cmd/testdata/seeds"
"regexp"
"testing"
)
var hanTextPattern = regexp.MustCompile(`\p{Han}`)
func TestEnglishChannelSeedDoesNotContainChineseText(t *testing.T) {
for _, item := range seeds.ChannelSeeds(seedlang.English) {
values := []string{item.Name, item.ConfigJSON, item.Remark}
for _, value := range values {
if hanTextPattern.MatchString(value) {
t.Fatalf("english channel seed contains Chinese text: %q", value)
}
}
}
}