package repository import ( "context" "github.com/Tencent/WeKnora/internal/types" "github.com/stretchr/testify/require" "testing" ) func TestAgentDeletionUnbindsFusionOnlyInSameTenant(t *testing.T) { _, db, scope, _ := setupDigitalHumanTest(t) rows := []types.CustomAgent{ {ID: "aux", TenantID: scope.TenantID, Name: "aux"}, {ID: "primary", TenantID: scope.TenantID, Name: "primary", Config: types.CustomAgentConfig{FusionAgentIDs: []string{"aux", "other"}, SystemPrompt: "keep"}}, {ID: "outside", TenantID: scope.TenantID + 1, Name: "outside", Config: types.CustomAgentConfig{FusionAgentIDs: []string{"aux"}}}, } for _, row := range rows { require.NoError(t, db.Create(&row).Error) } repo := &customAgentRepository{db: db} _, err := repo.DeleteAgentWithDigitalHumanBindings(context.Background(), "aux", scope.TenantID) require.NoError(t, err) var primary, outside types.CustomAgent require.NoError(t, db.First(&primary, "id = ?", "primary").Error) require.NoError(t, db.First(&outside, "id = ?", "outside").Error) require.Equal(t, []string{"other"}, primary.Config.FusionAgentIDs) require.Equal(t, "keep", primary.Config.SystemPrompt) require.Equal(t, []string{"aux"}, outside.Config.FusionAgentIDs) }