refactor: shorten model and table prefixes
This commit is contained in:
@@ -46,7 +46,7 @@ func TestAISessionHandlersRequireOwnedProject(t *testing.T) {
|
||||
}
|
||||
|
||||
var count int64
|
||||
require.NoError(t, database.Model(&models.SenlinAgentAISession{}).Count(&count).Error)
|
||||
require.NoError(t, database.Model(&models.SaAISession{}).Count(&count).Error)
|
||||
require.Zero(t, count)
|
||||
require.Empty(t, gateway.steps)
|
||||
}
|
||||
@@ -55,7 +55,7 @@ func TestAIExpertLibraryListsDetailsAndCreatesAssociatedSession(t *testing.T) {
|
||||
database := newAIHandlerTestDB(t)
|
||||
owner := createAIHandlerUser(t, database, "expert-owner@example.com")
|
||||
project := createAIHandlerProject(t, database, owner.ID, "EXPERTS")
|
||||
var expert models.SenlinAgentAIExpertItem
|
||||
var expert models.SaAIExpertItem
|
||||
require.NoError(t, database.Order("id asc").First(&expert).Error)
|
||||
router := aiHandlerTestRouter(owner.ID, NewGatewayWithSecret("system-key", "test-encryption-secret"))
|
||||
|
||||
@@ -87,7 +87,7 @@ func TestAIExpertLibraryListsDetailsAndCreatesAssociatedSession(t *testing.T) {
|
||||
responseExpert := createPayload["expert"].(map[string]any)
|
||||
require.Equal(t, expert.Identity, responseExpert["id"])
|
||||
require.Equal(t, expert.Name, responseExpert["name"])
|
||||
var session models.SenlinAgentAISession
|
||||
var session models.SaAISession
|
||||
require.NoError(t, database.First(&session).Error)
|
||||
require.NotNil(t, session.ExpertID)
|
||||
require.Equal(t, expert.ID, *session.ExpertID)
|
||||
@@ -131,7 +131,7 @@ func TestCreateAISessionReturnsRateLimitBeforeMissingKeyAndAuditsFailure(t *test
|
||||
require.NoError(t, json.Unmarshal(recorder.Body.Bytes(), &payload))
|
||||
require.Equal(t, "ai_rate_limited", payload.Error.Code)
|
||||
require.Equal(t, "AI 请求过于频繁,请稍后重试", payload.Error.Message)
|
||||
var latest models.SenlinAgentAICallLog
|
||||
var latest models.SaAICallLog
|
||||
require.NoError(t, database.Order("id desc").First(&latest).Error)
|
||||
require.Equal(t, "none", latest.Provider)
|
||||
require.Equal(t, "none", latest.UsedKeyType)
|
||||
@@ -157,16 +157,16 @@ func TestCreateAISessionWithoutKeyReturnsAuditedErrorAndCreatesNoFormalObjects(t
|
||||
require.Equal(t, "ai_key_missing", payload.Error.Code)
|
||||
require.Equal(t, "尚未配置可用的 AI 密钥", payload.Error.Message)
|
||||
for _, model := range []any{
|
||||
&models.SenlinAgentAISession{},
|
||||
&models.SenlinAgentTask{},
|
||||
&models.SenlinAgentNote{},
|
||||
&models.SenlinAgentSource{},
|
||||
&models.SaAISession{},
|
||||
&models.SaTask{},
|
||||
&models.SaNote{},
|
||||
&models.SaSource{},
|
||||
} {
|
||||
var count int64
|
||||
require.NoError(t, database.Model(model).Count(&count).Error)
|
||||
require.Zero(t, count)
|
||||
}
|
||||
var call models.SenlinAgentAICallLog
|
||||
var call models.SaAICallLog
|
||||
require.NoError(t, database.First(&call).Error)
|
||||
require.Equal(t, owner.ID, call.UserID)
|
||||
require.Equal(t, "none", call.Provider)
|
||||
@@ -174,7 +174,7 @@ func TestCreateAISessionWithoutKeyReturnsAuditedErrorAndCreatesNoFormalObjects(t
|
||||
require.Equal(t, "ai_session_create", call.Action)
|
||||
require.Equal(t, "failed", call.Status)
|
||||
require.Equal(t, "ai_key_missing", call.Error)
|
||||
var bucket models.SenlinAgentAIRateBucket
|
||||
var bucket models.SaAIRateBucket
|
||||
require.NoError(t, database.Where("user_id = ? AND action = ?", owner.ID, aiSessionCreateAction).First(&bucket).Error)
|
||||
require.Equal(t, 1, bucket.Count)
|
||||
}
|
||||
@@ -186,7 +186,7 @@ func TestCreateAISessionRollsBackSessionWhenReadyAuditWriteFails(t *testing.T) {
|
||||
injectedError := errors.New("injected ready audit failure")
|
||||
callbackName := "test:fail_ready_ai_audit"
|
||||
require.NoError(t, database.Callback().Create().Before("gorm:create").Register(callbackName, func(tx *gorm.DB) {
|
||||
call, ok := tx.Statement.Dest.(*models.SenlinAgentAICallLog)
|
||||
call, ok := tx.Statement.Dest.(*models.SaAICallLog)
|
||||
if ok && call.Status == defaultSessionStatus {
|
||||
tx.AddError(injectedError)
|
||||
}
|
||||
@@ -201,9 +201,9 @@ func TestCreateAISessionRollsBackSessionWhenReadyAuditWriteFails(t *testing.T) {
|
||||
|
||||
require.Equal(t, http.StatusInternalServerError, recorder.Code)
|
||||
var sessionCount int64
|
||||
require.NoError(t, database.Model(&models.SenlinAgentAISession{}).Where("project_id = ?", project.ID).Count(&sessionCount).Error)
|
||||
require.NoError(t, database.Model(&models.SaAISession{}).Where("project_id = ?", project.ID).Count(&sessionCount).Error)
|
||||
require.Zero(t, sessionCount)
|
||||
var calls []models.SenlinAgentAICallLog
|
||||
var calls []models.SaAICallLog
|
||||
require.NoError(t, database.Where("user_id = ? AND action = ?", owner.ID, aiSessionCreateAction).Find(&calls).Error)
|
||||
require.Len(t, calls, 1)
|
||||
require.Equal(t, "openai", calls[0].Provider)
|
||||
@@ -216,7 +216,7 @@ func TestCreateAISessionAuditsKnownProviderMetadataWhenUserKeyDecryptFails(t *te
|
||||
database := newAIHandlerTestDB(t)
|
||||
owner := createAIHandlerUser(t, database, "decrypt-failure@example.com")
|
||||
project := createAIHandlerProject(t, database, owner.ID, "DECRYPT_FAILURE")
|
||||
require.NoError(t, database.Create(&models.SenlinAgentAIKey{
|
||||
require.NoError(t, database.Create(&models.SaAIKey{
|
||||
UserID: owner.ID, Provider: "deepseek", EncryptedAPIKey: "v1:not-valid-base64",
|
||||
}).Error)
|
||||
router := aiHandlerTestRouter(owner.ID, NewGatewayWithSecret("system-key", "test-encryption-secret"))
|
||||
@@ -227,7 +227,7 @@ func TestCreateAISessionAuditsKnownProviderMetadataWhenUserKeyDecryptFails(t *te
|
||||
}))
|
||||
|
||||
require.Equal(t, http.StatusInternalServerError, recorder.Code)
|
||||
var call models.SenlinAgentAICallLog
|
||||
var call models.SaAICallLog
|
||||
require.NoError(t, database.Where("user_id = ? AND action = ?", owner.ID, aiSessionCreateAction).First(&call).Error)
|
||||
require.Equal(t, "deepseek", call.Provider)
|
||||
require.Equal(t, "user", call.UsedKeyType)
|
||||
@@ -235,7 +235,7 @@ func TestCreateAISessionAuditsKnownProviderMetadataWhenUserKeyDecryptFails(t *te
|
||||
require.Equal(t, "provider_selection_failed", call.Error)
|
||||
require.NotContains(t, call.Error, "not-valid-base64")
|
||||
var sessionCount int64
|
||||
require.NoError(t, database.Model(&models.SenlinAgentAISession{}).Count(&sessionCount).Error)
|
||||
require.NoError(t, database.Model(&models.SaAISession{}).Count(&sessionCount).Error)
|
||||
require.Zero(t, sessionCount)
|
||||
}
|
||||
|
||||
@@ -266,14 +266,14 @@ func TestCreateAISessionReturnsIdentityDTOAndCompleteAuditWithoutAutomaticObject
|
||||
require.NotContains(t, payload, forbidden)
|
||||
}
|
||||
|
||||
var call models.SenlinAgentAICallLog
|
||||
var call models.SaAICallLog
|
||||
require.NoError(t, database.First(&call).Error)
|
||||
require.Equal(t, "openai", call.Provider)
|
||||
require.Equal(t, "system", call.UsedKeyType)
|
||||
require.Equal(t, "ai_session_create", call.Action)
|
||||
require.Equal(t, "ready", call.Status)
|
||||
require.Empty(t, call.Error)
|
||||
for _, model := range []any{&models.SenlinAgentTask{}, &models.SenlinAgentNote{}, &models.SenlinAgentSource{}} {
|
||||
for _, model := range []any{&models.SaTask{}, &models.SaNote{}, &models.SaSource{}} {
|
||||
var count int64
|
||||
require.NoError(t, database.Model(model).Count(&count).Error)
|
||||
require.Zero(t, count)
|
||||
@@ -285,10 +285,10 @@ func TestListAISessionsReturnsOnlyOwnedProjectIdentityDTOs(t *testing.T) {
|
||||
owner := createAIHandlerUser(t, database, "owner@example.com")
|
||||
project := createAIHandlerProject(t, database, owner.ID, "LIST")
|
||||
otherProject := createAIHandlerProject(t, database, owner.ID, "OTHER")
|
||||
require.NoError(t, database.Create(&models.SenlinAgentAISession{
|
||||
require.NoError(t, database.Create(&models.SaAISession{
|
||||
ProjectID: project.ID, CreatedBy: owner.ID, Title: "目标会话", Context: "项目上下文",
|
||||
}).Error)
|
||||
require.NoError(t, database.Create(&models.SenlinAgentAISession{
|
||||
require.NoError(t, database.Create(&models.SaAISession{
|
||||
ProjectID: otherProject.ID, CreatedBy: owner.ID, Title: "其他会话", Context: "不得混入",
|
||||
}).Error)
|
||||
router := aiHandlerTestRouter(owner.ID, &recordingSessionGateway{})
|
||||
@@ -339,16 +339,16 @@ func newAIHandlerTestDB(t *testing.T) *gorm.DB {
|
||||
return database
|
||||
}
|
||||
|
||||
func createAIHandlerUser(t *testing.T, database *gorm.DB, email string) models.SenlinAgentUser {
|
||||
func createAIHandlerUser(t *testing.T, database *gorm.DB, email string) models.SaUser {
|
||||
t.Helper()
|
||||
user := models.SenlinAgentUser{Email: email, DisplayName: email, PasswordHash: "hash"}
|
||||
user := models.SaUser{Email: email, DisplayName: email, PasswordHash: "hash"}
|
||||
require.NoError(t, database.Create(&user).Error)
|
||||
return user
|
||||
}
|
||||
|
||||
func createAIHandlerProject(t *testing.T, database *gorm.DB, ownerID uint, identifier string) models.SenlinAgentProject {
|
||||
func createAIHandlerProject(t *testing.T, database *gorm.DB, ownerID uint, identifier string) models.SaProject {
|
||||
t.Helper()
|
||||
project := models.SenlinAgentProject{OwnerID: ownerID, Name: identifier, Identifier: identifier}
|
||||
project := models.SaProject{OwnerID: ownerID, Name: identifier, Identifier: identifier}
|
||||
require.NoError(t, database.Create(&project).Error)
|
||||
return project
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user