- import 统一:删除 cli/contractfinal 与 cli/runtimeannotate 垫片包, 26 个消费文件一律直引 corecmd/*;cli 根仅保留 runtime_schema_seam.go 包内别名,依赖图保持单向无环 - 新增 internal/testseam.Swap[T]:包级 var 注入缝置换由 t.Cleanup 结构性恢复;迁移 pipeline*/stdinIsTerminalFn/loadReviewedCommandRegistry/ schemaCommandCatalogError/schemaParameterBindingData/finalSchemaAgentMetadata 六组核心缝(26+ 处) - ForTest 辅助归拢到 per-package fortest.go(corecmd/contract、 corecmd/contractfinal、shortcut、cli),生产文件只留真逻辑 - 文档同步:runtime_schema_seam.go / runtimeannotate/doc.go 注释、 CHANGELOG、RFC §278-279、AGENTS.md
35 lines
1.2 KiB
Go
35 lines
1.2 KiB
Go
package homology
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/app"
|
|
"github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/corecmd/contractfinal"
|
|
)
|
|
|
|
func TestContractFinalFoundForHrbrain(t *testing.T) {
|
|
root := app.NewSchemaSourceRootCommand()
|
|
hrbrain, _, err := root.Find([]string{"hrbrain", "search", "employees"})
|
|
if err != nil || hrbrain == nil {
|
|
t.Fatalf("hrbrain search employees not found: %v", err)
|
|
}
|
|
final, ok := contractfinal.RuntimeContractFinal(hrbrain)
|
|
if !ok {
|
|
t.Fatal("ContractFinal NOT found for hrbrain search employees — this is the root cause of contract.ParamDecl not working")
|
|
}
|
|
t.Logf("ContractFinal found: title=%s params=%d", final.Title, len(final.Parameters))
|
|
}
|
|
|
|
func TestContractFinalFoundForAisearch(t *testing.T) {
|
|
root := app.NewSchemaSourceRootCommand()
|
|
enterprise, _, err := root.Find([]string{"aisearch", "enterprise"})
|
|
if err != nil || enterprise == nil {
|
|
t.Fatalf("aisearch enterprise not found: %v", err)
|
|
}
|
|
final, ok := contractfinal.RuntimeContractFinal(enterprise)
|
|
if !ok {
|
|
t.Fatal("ContractFinal NOT found for aisearch enterprise")
|
|
}
|
|
t.Logf("ContractFinal found: title=%s params=%d", final.Title, len(final.Parameters))
|
|
}
|