Files
dingtalk-workspace-cli/internal/cli/schema_overall_gap_coverage_test.go
玉澜andCursor 98f45cfe23 Retire dead MCP pin candidates from Schema parameter assembly.
Production already ships an empty pin; remove the leftover mcp_metadata
candidate path so parameter resolution only uses declare/Cobra sources.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 22:45:33 +08:00

1122 lines
45 KiB
Go

// Copyright 2026 Alibaba Group
// Licensed under the Apache License, Version 2.0 (the "License");
package cli
import (
"bytes"
"encoding/json"
"fmt"
"strings"
"testing"
"github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/corecmd/contract"
"github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/testseam"
"github.com/spf13/cobra"
)
func TestCrossPlatformCoverageResolveSchemaBuildAndAssembleEdges(t *testing.T) {
if _, err := ResolveSchemaBuild(nil); err == nil {
t.Fatal("nil root must fail ResolveSchemaBuild")
}
if _, err := AssembleSchemaRegistry(nil); err == nil {
t.Fatal("nil root must fail AssembleSchemaRegistry")
}
emptyRegistry, err := AssembleSchemaRegistryFromBound(BoundCommandRegistry{})
if err != nil {
t.Fatalf("empty bound assemble must succeed: %v", err)
}
if len(emptyRegistry.Products) != 0 {
t.Fatalf("empty bound assemble products = %#v", emptyRegistry.Products)
}
registry := SchemaRegistry{
Source: SchemaSourceRuntimeAssembled,
Products: []ProductSpec{{
ID: "sample",
Tools: []ToolSpec{{
Identity: contract.ToolIdentitySpec{
CLIPath: "sample run", CanonicalPath: "sample.run", ProductID: "sample",
Name: "run", Path: "sample.run", PrimaryCLIPath: "sample run",
},
Safety: contract.SafetySpec{Effect: "read", Risk: "low", Confirmation: "not_required", Idempotency: "yes"},
Selection: contract.SelectionSpec{AgentSummary: "sample"},
}},
}},
}
if _, err := registry.ToPayload(); err != nil {
t.Fatalf("registry.ToPayload() error = %v", err)
}
if _, err := mergeSchemaCatalogDump([]byte("{"), t.TempDir()); err == nil {
t.Fatal("bad catalog envelope must fail")
}
}
func TestCrossPlatformCoverageBuildSchemaCatalogSnapshotValidationErrors(t *testing.T) {
root := &cobra.Command{Use: "dws"}
resolved := ResolvedSchemaBuild{
root: root,
bound: BoundCommandRegistry{},
effective: EffectiveCommandRegistry{},
registry: SchemaRegistry{
Products: []ProductSpec{{
ID: "sample",
Tools: []ToolSpec{{
Identity: contract.ToolIdentitySpec{
CLIPath: "sample run", CanonicalPath: "sample.run", ProductID: "sample",
Name: "run", Path: "sample.run", PrimaryCLIPath: "sample run",
},
Safety: contract.SafetySpec{Effect: "read", Risk: "low", Confirmation: "not_required", Idempotency: "yes"},
Selection: contract.SelectionSpec{AgentSummary: "s"},
}},
}},
},
}
if _, err := BuildSchemaCatalogSnapshot(ResolvedSchemaBuild{}, SchemaCatalogBuildOptions{}); err == nil || !strings.Contains(err.Error(), "ResolveSchemaBuild") {
t.Fatalf("nil root snapshot error = %v", err)
}
if _, err := BuildSchemaCatalogSnapshot(resolved, SchemaCatalogBuildOptions{RegistryHash: "disagree"}); err == nil || !strings.Contains(err.Error(), "disagrees") {
t.Fatalf("hash disagree error = %v", err)
}
restore := func() {
buildCatalogValidateParameterBindings = ValidateSchemaParameterBindingDelivery
buildCatalogValidateDryRun = ValidateReviewedDryRunCapabilityDelivery
buildCatalogValidateExamples = ValidateAgentExampleDelivery
buildCatalogValidateCompleteness = validateResolvedRuntimeSchemaCompleteness
buildCatalogValidateRegistry = validateSchemaRegistryAgainstCommandRegistry
buildCatalogValidateInterfaces = validateSchemaRegistryInterfaces
buildCatalogValidateAgentMetadata = validateSchemaRegistryAgentMetadata
buildCatalogValidateProvenance = validateFinalSchemaProvenanceCoverage
buildCatalogValidateDelivery = ValidateSchemaDeliveryInvariants
buildCatalogValidateFinalCompleteness = validateResolvedSchemaCatalogDeliveryCompleteness
}
t.Cleanup(restore)
type hook struct {
name string
set func()
}
passBindings := func() {
buildCatalogValidateParameterBindings = func(BoundCommandRegistry, SchemaRegistry) error { return nil }
}
passDryRun := func() {
buildCatalogValidateDryRun = func(SchemaRegistry) error { return nil }
}
passExamples := func() {
buildCatalogValidateExamples = func(BoundCommandRegistry, SchemaRegistry) (AgentExampleExecutionPlan, error) {
return AgentExampleExecutionPlan{}, nil
}
}
passCompleteness := func() {
buildCatalogValidateCompleteness = func(*cobra.Command, BoundCommandRegistry) error { return nil }
}
passRegistry := func() {
buildCatalogValidateRegistry = func(SchemaRegistry, EffectiveCommandRegistry) error { return nil }
}
passInterfaces := func() {
buildCatalogValidateInterfaces = func(SchemaRegistry) error { return nil }
}
passAgent := func() {
buildCatalogValidateAgentMetadata = func(SchemaRegistry) error { return nil }
}
passProvenance := func() {
buildCatalogValidateProvenance = func(SchemaRegistry) error { return nil }
}
passUpTo := func(stage string) {
passBindings()
if stage == "param" {
return
}
passDryRun()
if stage == "dryrun" {
return
}
passExamples()
if stage == "examples" {
return
}
passCompleteness()
if stage == "completeness" {
return
}
passRegistry()
if stage == "registry" {
return
}
passInterfaces()
if stage == "iface" {
return
}
passAgent()
if stage == "agent" {
return
}
passProvenance()
}
hooks := []hook{
{"param", func() {
buildCatalogValidateParameterBindings = func(BoundCommandRegistry, SchemaRegistry) error {
return fmt.Errorf("param boom")
}
}},
{"dryrun", func() {
passUpTo("param")
buildCatalogValidateDryRun = func(SchemaRegistry) error { return fmt.Errorf("dryrun boom") }
}},
{"examples", func() {
passUpTo("dryrun")
buildCatalogValidateExamples = func(BoundCommandRegistry, SchemaRegistry) (AgentExampleExecutionPlan, error) {
return AgentExampleExecutionPlan{}, fmt.Errorf("examples boom")
}
}},
{"completeness", func() {
passUpTo("examples")
buildCatalogValidateCompleteness = func(*cobra.Command, BoundCommandRegistry) error {
return fmt.Errorf("completeness boom")
}
}},
{"registry", func() {
passUpTo("completeness")
buildCatalogValidateRegistry = func(SchemaRegistry, EffectiveCommandRegistry) error {
return fmt.Errorf("registry boom")
}
}},
{"iface", func() {
passUpTo("registry")
buildCatalogValidateInterfaces = func(SchemaRegistry) error { return fmt.Errorf("iface boom") }
}},
{"agent", func() {
passUpTo("iface")
buildCatalogValidateAgentMetadata = func(SchemaRegistry) error { return fmt.Errorf("agent boom") }
}},
{"prov", func() {
passUpTo("agent")
buildCatalogValidateProvenance = func(SchemaRegistry) error { return fmt.Errorf("prov boom") }
}},
{"delivery", func() {
passUpTo("prov")
buildCatalogValidateDelivery = func(SchemaRegistry, SchemaCatalogSnapshot) error {
return fmt.Errorf("delivery boom")
}
}},
{"final", func() {
passUpTo("prov")
buildCatalogValidateDelivery = func(SchemaRegistry, SchemaCatalogSnapshot) error { return nil }
buildCatalogValidateFinalCompleteness = func(*cobra.Command, BoundCommandRegistry, SchemaCatalogSnapshot) error {
return fmt.Errorf("final boom")
}
}},
}
for _, h := range hooks {
restore()
h.set()
if _, err := BuildSchemaCatalogSnapshot(resolved, SchemaCatalogBuildOptions{}); err == nil || !strings.Contains(err.Error(), "boom") {
t.Fatalf("%s error = %v", h.name, err)
}
}
}
func TestCrossPlatformCoverageDeliveryInvariantErrorBranches(t *testing.T) {
path, left, right := firstSchemaJSONDifference(map[string]any{"a": 1}, map[string]any{"a": 2})
if path == "" || left == "" || right == "" {
t.Fatalf("map difference empty: %q %q %q", path, left, right)
}
path, _, _ = firstSchemaJSONDifference([]any{1}, []any{1, 2})
if path == "" {
t.Fatal("list length difference empty")
}
path, _, _ = firstSchemaJSONDifference(map[string]any{"k": "v"}, "scalar")
if path == "" {
t.Fatal("map vs scalar difference empty")
}
path, _, _ = firstSchemaJSONDifference([]any{"x"}, map[string]any{"x": 1})
if path == "" {
t.Fatal("list vs map difference empty")
}
path, _, _ = firstSchemaJSONDifference(map[string]any{"a": 1}, map[string]any{"a": 1, "b": 2})
if path != "$.b" {
t.Fatalf("extra right-map key difference = %q", path)
}
path, _, _ = firstSchemaJSONDifference(map[string]any{"a": 1, "b": 2}, map[string]any{"a": 1})
if path != "$.b" {
t.Fatalf("extra left-map key difference = %q", path)
}
long := strings.Repeat("x", 300)
if got := compactSchemaDiagnosticValue(long); !strings.HasSuffix(got, "...") {
t.Fatalf("compact long value = %q", got)
}
prevRegistry := deliveryRegistryPayload
prevSchema := deliverySchemaPayload
prevOverview := deliveryOverviewPayload
t.Cleanup(func() {
deliveryRegistryPayload = prevRegistry
deliverySchemaPayload = prevSchema
deliveryOverviewPayload = prevOverview
})
registry := SchemaRegistry{
Source: SchemaSourceRuntimeAssembled,
Products: []ProductSpec{{
ID: "sample",
Tools: []ToolSpec{{
Identity: contract.ToolIdentitySpec{
CLIPath: "sample run", CanonicalPath: "sample.run", ProductID: "sample",
Name: "run", Path: "sample.run", PrimaryCLIPath: "sample run",
},
Safety: contract.SafetySpec{Effect: "read", Risk: "low", Confirmation: "not_required", Idempotency: "yes"},
Selection: contract.SelectionSpec{AgentSummary: "s"},
}},
}},
}
payload, err := registry.ToSnapshotPayload()
if err != nil {
t.Fatal(err)
}
snapshot := SchemaCatalogSnapshot{
Version: SchemaCatalogSnapshotVersion,
SurfaceHash: "sha256:test",
Catalog: payload.Catalog,
Tools: payload.Tools,
}
snapshot.SourceHash = schemaCatalogSnapshotHash(snapshot)
if err := schemaSourceSnapshotInvariantErrors(registry, SchemaCatalogSnapshot{
Catalog: map[string]any{"products": []any{}},
Tools: map[string]map[string]any{},
}); len(err) == 0 {
t.Fatal("mismatched catalog must report invariant problems")
}
deliveryRegistryPayload = func(SchemaRegistry) (map[string]any, error) {
return nil, fmt.Errorf("all boom")
}
if problems := schemaDeliveryInvariantErrors(loadedSchemaCatalog{Registry: registry, Snapshot: snapshot}); len(problems) == 0 {
t.Fatal("expected --all render failure")
}
deliveryRegistryPayload = prevRegistry
deliverySchemaPayload = func(loadedSchemaCatalog, []string) (map[string]any, error) {
return nil, fmt.Errorf("list boom")
}
if problems := schemaDeliveryInvariantErrors(loadedSchemaCatalog{Registry: registry, Snapshot: snapshot}); len(problems) == 0 {
t.Fatal("expected list query failure")
}
deliverySchemaPayload = prevSchema
deliveryOverviewPayload = func(SchemaRegistry) (map[string]any, error) {
return nil, fmt.Errorf("overview boom")
}
if problems := schemaDeliveryInvariantErrors(loadedSchemaCatalog{Registry: registry, Snapshot: snapshot}); len(problems) == 0 {
t.Fatal("expected overview failure")
}
deliveryOverviewPayload = prevOverview
broken := snapshot
broken.Catalog = map[string]any{"products": []any{}}
if err := ValidateSchemaDeliveryInvariants(registry, broken); err == nil {
t.Fatal("broken snapshot must fail delivery invariants")
}
if err := validateSchemaSnapshotDeliveryInvariants(broken); err == nil {
t.Fatal("broken snapshot must fail snapshot-only invariants")
}
}
func TestCrossPlatformCoverageCommandRegistryHashEdges(t *testing.T) {
specs := []CommandSpec{{
CanonicalPath: "a.one", PrimaryCLIPath: "a one", Visibility: SchemaVisibilityPublic,
}}
registry := CommandRegistry{Commands: specs}
if registry.SourceHash() == "" {
t.Fatal("command registry hash must be non-empty")
}
if registry.SourceHash() != (EffectiveCommandRegistry{Commands: specs}).SourceHash() {
t.Fatal("CommandRegistry and EffectiveCommandRegistry hashes disagree for identical specs")
}
}
func TestCrossPlatformCoverageResolveAssembleInjectionErrors(t *testing.T) {
root := &cobra.Command{Use: "dws"}
prevEff := resolveEffectiveCommandRegistry
prevBound := resolveBoundCommandRegistry
prevAsm := resolveAssembleSchemaRegistry
prevParam := resolveValidateParameterDelivery
prevBind := assembleValidateBindings
prevCollect := assembleCollectEntries
prevTool := assembleRuntimeToolSpec
prevTyped := assembleTypedRegistry
prevMarshal := assembleMarshalRaw
t.Cleanup(func() {
resolveEffectiveCommandRegistry = prevEff
resolveBoundCommandRegistry = prevBound
resolveAssembleSchemaRegistry = prevAsm
resolveValidateParameterDelivery = prevParam
assembleValidateBindings = prevBind
assembleCollectEntries = prevCollect
assembleRuntimeToolSpec = prevTool
assembleTypedRegistry = prevTyped
assembleMarshalRaw = prevMarshal
})
resolveEffectiveCommandRegistry = func(*cobra.Command) (EffectiveCommandRegistry, error) {
return EffectiveCommandRegistry{}, fmt.Errorf("eff boom")
}
if _, err := ResolveSchemaBuild(root); err == nil || !strings.Contains(err.Error(), "eff boom") {
t.Fatalf("effective error = %v", err)
}
resolveEffectiveCommandRegistry = func(*cobra.Command) (EffectiveCommandRegistry, error) {
return EffectiveCommandRegistry{}, nil
}
resolveBoundCommandRegistry = func(*cobra.Command, EffectiveCommandRegistry) (BoundCommandRegistry, error) {
return BoundCommandRegistry{}, fmt.Errorf("bound boom")
}
if _, err := ResolveSchemaBuild(root); err == nil || !strings.Contains(err.Error(), "bound boom") {
t.Fatalf("bound error = %v", err)
}
resolveBoundCommandRegistry = func(*cobra.Command, EffectiveCommandRegistry) (BoundCommandRegistry, error) {
return BoundCommandRegistry{}, nil
}
resolveAssembleSchemaRegistry = func(BoundCommandRegistry) (SchemaRegistry, error) {
return SchemaRegistry{}, fmt.Errorf("asm boom")
}
if _, err := ResolveSchemaBuild(root); err == nil || !strings.Contains(err.Error(), "asm boom") {
t.Fatalf("assemble error = %v", err)
}
resolveAssembleSchemaRegistry = func(BoundCommandRegistry) (SchemaRegistry, error) {
return SchemaRegistry{}, nil
}
resolveValidateParameterDelivery = func(BoundCommandRegistry, SchemaRegistry) error {
return fmt.Errorf("param boom")
}
if _, err := AssembleSchemaRegistry(root); err == nil || !strings.Contains(err.Error(), "param boom") {
t.Fatalf("param delivery error = %v", err)
}
resolveValidateParameterDelivery = prevParam
resolveAssembleSchemaRegistry = prevAsm
assembleValidateBindings = func() error { return fmt.Errorf("bindings boom") }
if _, err := AssembleSchemaRegistryFromBound(BoundCommandRegistry{}); err == nil || !strings.Contains(err.Error(), "bindings boom") {
t.Fatalf("bindings error = %v", err)
}
assembleValidateBindings = func() error { return nil }
assembleCollectEntries = func(BoundCommandRegistry) ([]runtimeSchemaEntry, error) {
return nil, fmt.Errorf("collect boom")
}
if _, err := assembleSchemaRegistryFromBound(BoundCommandRegistry{}, runtimeSchemaMetadataSources{}); err == nil || !strings.Contains(err.Error(), "collect boom") {
t.Fatalf("collect error = %v", err)
}
assembleCollectEntries = func(BoundCommandRegistry) ([]runtimeSchemaEntry, error) {
return []runtimeSchemaEntry{{ProductID: "p", ToolName: "t", ProductName: "P", CLIPath: "p t", PrimaryCLIPath: "p t"}}, nil
}
// assembleRuntimeToolSpec is the seam consulted for per-entry tool
// resolution during declared assembly.
assembleRuntimeToolSpec = func(runtimeSchemaEntry, runtimeSchemaMetadataSources) (ToolSpec, error) {
return ToolSpec{}, fmt.Errorf("tool boom")
}
if _, err := assembleSchemaRegistryFromBound(BoundCommandRegistry{}, runtimeSchemaMetadataSources{}); err == nil || !strings.Contains(err.Error(), "tool boom") {
t.Fatalf("tool error = %v", err)
}
t.Cleanup(func() { contract.ClearProductDeclForTest("p") })
contract.RegisterProductDecl(contract.ProductDecl{
ID: "p",
Selection: contract.ProductSelectionDecl{
AgentSummary: "P product",
UseWhen: []string{"p routing"},
AvoidWhen: []string{"not p"},
},
})
assembleRuntimeToolSpec = func(runtimeSchemaEntry, runtimeSchemaMetadataSources) (ToolSpec, error) {
return ToolSpec{
Identity: contract.ToolIdentitySpec{
CLIPath: "p t", CanonicalPath: "p.t", ProductID: "p", Name: "t", Path: "p.t", PrimaryCLIPath: "p t",
},
Safety: contract.SafetySpec{Effect: "read", Risk: "low", Confirmation: "not_required", Idempotency: "yes"},
Selection: contract.SelectionSpec{AgentSummary: "s"},
}, nil
}
assembleTypedRegistry = func(string, []ProductSpec) (SchemaRegistry, error) {
return SchemaRegistry{}, fmt.Errorf("typed boom")
}
if _, err := assembleSchemaRegistryFromBound(BoundCommandRegistry{}, runtimeSchemaMetadataSources{}); err == nil || !strings.Contains(err.Error(), "typed boom") {
t.Fatalf("typed error = %v", err)
}
assembleTypedRegistry = func(string, []ProductSpec) (SchemaRegistry, error) {
return SchemaRegistry{Products: []ProductSpec{{ID: "p"}}}, nil
}
calls := 0
assembleMarshalRaw = func(any) (json.RawMessage, error) {
calls++
if calls == 1 {
return nil, fmt.Errorf("agent boom")
}
return json.RawMessage(`{}`), nil
}
if _, err := assembleSchemaRegistryFromBound(BoundCommandRegistry{}, runtimeSchemaMetadataSources{}); err == nil || !strings.Contains(err.Error(), "agent boom") {
t.Fatalf("agent marshal error = %v", err)
}
}
func TestCrossPlatformCoverageDeliveryInvariantProjectionMismatches(t *testing.T) {
prevIndex := deliveryIndexResolve
prevTool := deliveryToolPayload
prevSummary := deliveryToolSummary
prevSchema := deliverySchemaPayload
prevRegistry := deliveryRegistryPayload
prevOverview := deliveryOverviewPayload
t.Cleanup(func() {
deliveryIndexResolve = prevIndex
deliveryToolPayload = prevTool
deliveryToolSummary = prevSummary
deliverySchemaPayload = prevSchema
deliveryRegistryPayload = prevRegistry
deliveryOverviewPayload = prevOverview
})
registry := SchemaRegistry{
Source: SchemaSourceRuntimeAssembled,
Products: []ProductSpec{{
ID: "sample",
Tools: []ToolSpec{{
Identity: contract.ToolIdentitySpec{
CLIPath: "sample run", CanonicalPath: "sample.run", ProductID: "sample",
Name: "run", Path: "sample.run", PrimaryCLIPath: "sample run",
Aliases: []string{"sample r"},
},
Safety: contract.SafetySpec{Effect: "read", Risk: "low", Confirmation: "not_required", Idempotency: "yes"},
Selection: contract.SelectionSpec{AgentSummary: "s"},
}},
}},
}
index, err := registry.Index()
if err != nil {
t.Fatal(err)
}
payload, err := registry.ToSnapshotPayload()
if err != nil {
t.Fatal(err)
}
snapshot := SchemaCatalogSnapshot{
Version: SchemaCatalogSnapshotVersion,
SurfaceHash: "sha256:surface",
Catalog: payload.Catalog,
Tools: payload.Tools,
}
snapshot.SourceHash = schemaCatalogSnapshotHash(snapshot)
loaded := loadedSchemaCatalog{Snapshot: snapshot, Registry: registry, Index: index}
deliveryIndexResolve = func(SchemaIndex, string) (ToolSpec, bool) { return ToolSpec{}, false }
if problems := schemaDeliveryInvariantErrors(loaded); len(problems) == 0 {
t.Fatal("lost index resolve must report")
}
deliveryIndexResolve = prevIndex
deliveryToolPayload = func(ToolSpec) (map[string]any, error) { return nil, fmt.Errorf("tool boom") }
if problems := schemaDeliveryInvariantErrors(loaded); len(problems) == 0 {
t.Fatal("tool payload failure must report")
}
deliveryToolPayload = prevTool
deliveryToolSummary = func(ToolSpec) (map[string]any, error) { return nil, fmt.Errorf("summary boom") }
if problems := schemaDeliveryInvariantErrors(loaded); len(problems) == 0 {
t.Fatal("summary failure must report")
}
deliveryToolSummary = prevSummary
mutated := loaded
mutated.Snapshot.Tools = map[string]map[string]any{}
if problems := schemaDeliveryInvariantErrors(mutated); len(problems) == 0 {
t.Fatal("missing full tools must report")
}
mutated = loaded
mutated.Snapshot.SurfaceHash = ""
deliverySchemaPayload = func(loadedSchemaCatalog, []string) (map[string]any, error) {
return map[string]any{"catalog_hash": loaded.Snapshot.SourceHash, "surface_hash": "extra", "products": []any{}}, nil
}
if problems := schemaDeliveryInvariantErrors(mutated); len(problems) == 0 {
t.Fatal("unexpected surface_hash must report")
}
deliverySchemaPayload = func(loadedSchemaCatalog, []string) (map[string]any, error) {
return map[string]any{"catalog_hash": "wrong", "products": []any{}}, nil
}
mutated = loaded
if problems := schemaDeliveryInvariantErrors(mutated); len(problems) == 0 {
t.Fatal("catalog_hash mismatch must report")
}
deliverySchemaPayload = prevSchema
deliveryOverviewPayload = func(SchemaRegistry) (map[string]any, error) {
return map[string]any{"kind": "schema", "level": "products", "count": 0, "tool_count": 0, "products": []any{}}, nil
}
if problems := schemaDeliveryInvariantErrors(loaded); len(problems) == 0 {
t.Fatal("overview mismatch must report")
}
deliveryOverviewPayload = prevOverview
if problem := schemaAliasViewProblem(map[string]any{"cli_path": "a"}, map[string]any{"cli_path": "b", "is_alias": true}, "a"); problem == "" {
t.Fatal("alias cli_path mismatch must report")
}
if problem := schemaAliasViewProblem(map[string]any{"cli_path": "a"}, map[string]any{"cli_path": "a"}, "a"); problem == "" {
t.Fatal("missing is_alias must report")
}
_, problems := schemaDeliveryToolsByCanonical(map[string]any{
"products": []any{map[string]any{"tools": []any{map[string]any{"name": "x"}, map[string]any{"canonical_path": "a.b"}, map[string]any{"canonical_path": "a.b"}}}},
}, "view")
if len(problems) < 2 {
t.Fatalf("duplicate/missing canonical problems = %v", problems)
}
overview := schemaOverviewPayloadFromCatalog(map[string]any{
"kind": "schema", "source": "runtime",
"products": []any{
map[string]any{"id": "p1", "agent_summary": "s", "tools": []any{map[string]any{"canonical_path": "p1.t"}}},
map[string]any{"id": "p2", "use_when": []any{"u"}, "tools": []any{}},
map[string]any{"id": "p3", "description": "d", "tools": []any{}},
},
})
if overview["count"] != 3 || overview["tool_count"] != 1 || overview["source"] != "runtime" {
t.Fatalf("schema overview payload = %#v", overview)
}
overviewProducts, _ := overview["products"].([]map[string]any)
if len(overviewProducts) != 3 ||
overviewProducts[0]["agent_summary"] != "s" ||
overviewProducts[1]["use_when"].([]string)[0] != "u" ||
overviewProducts[2]["description"] != "d" {
t.Fatalf("schema overview products = %#v", overviewProducts)
}
}
func TestCrossPlatformCoverageCompletenessValidSnapshotReportBranches(t *testing.T) {
prevReport := completenessDeliveryReport
prevCollect := completenessCollectEntries
prevIface := loadCatalogValidateInterfaces
prevProv := loadCatalogValidateProvenance
t.Cleanup(func() {
completenessDeliveryReport = prevReport
completenessCollectEntries = prevCollect
loadCatalogValidateInterfaces = prevIface
loadCatalogValidateProvenance = prevProv
})
loadCatalogValidateInterfaces = func(SchemaRegistry) error { return nil }
loadCatalogValidateProvenance = func(SchemaRegistry) error { return nil }
registry := SchemaRegistry{
Source: SchemaSourceRuntimeAssembled,
Products: []ProductSpec{{
ID: "sample",
Tools: []ToolSpec{{
Identity: contract.ToolIdentitySpec{
CLIPath: "sample run", CanonicalPath: "sample.run", ProductID: "sample",
Name: "run", Path: "sample.run", PrimaryCLIPath: "sample run",
},
Safety: contract.SafetySpec{Effect: "read", Risk: "low", Confirmation: "not_required", Idempotency: "yes"},
Selection: contract.SelectionSpec{AgentSummary: "s"},
}},
}},
}
payload, err := registry.ToSnapshotPayload()
if err != nil {
t.Fatal(err)
}
snapshot := SchemaCatalogSnapshot{
Version: SchemaCatalogSnapshotVersion,
Catalog: payload.Catalog,
Tools: payload.Tools,
}
snapshot.SourceHash = schemaCatalogSnapshotHash(snapshot)
root := &cobra.Command{Use: "dws"}
for _, tc := range []struct {
report RuntimeSchemaCompletenessReport
want string
}{
{RuntimeSchemaCompletenessReport{DeliveryErrors: []string{"snap"}}, "snap"},
{RuntimeSchemaCompletenessReport{Missing: []string{"m"}}, "missing"},
{RuntimeSchemaCompletenessReport{InvalidExclusions: []string{"i"}}, "invalid"},
{RuntimeSchemaCompletenessReport{StaleExclusions: []string{"s"}}, "stale"},
} {
completenessDeliveryReport = func(*cobra.Command, loadedSchemaCatalog, []RuntimeSchemaExclusion, BoundCommandRegistry) RuntimeSchemaCompletenessReport {
return tc.report
}
if err := validateSchemaCatalogDeliveryCompletenessFromBound(root, BoundCommandRegistry{}, snapshot, nil); err == nil || !strings.Contains(err.Error(), tc.want) {
t.Fatalf("report %q error = %v", tc.want, err)
}
}
completenessCollectEntries = func(*cobra.Command) ([]runtimeSchemaEntry, error) {
return nil, fmt.Errorf("collect boom")
}
report := RuntimeSchemaCompleteness(root, nil)
if len(report.DeliveryErrors) == 0 || !strings.Contains(report.DeliveryErrors[0], "collect boom") {
t.Fatalf("collect delivery errors = %#v", report.DeliveryErrors)
}
}
func TestCrossPlatformCoverageRuntimeParameterMetadataApply(t *testing.T) {
canonical := "coverage.param.meta." + t.Name()
t.Cleanup(func() {
delete(runtimeSchemaParameterMetadataByCanonical, canonical)
})
RegisterRuntimeSchemaParameterMetadata(canonical, RuntimeSchemaParameterMetadata{
Required: []string{"name", "missing"},
RequiredWhen: map[string]string{"name": "other=true"},
Formats: map[string]string{"name": "uuid"},
Enums: map[string][]string{"name": {"a", "b"}},
Examples: map[string]string{"name": "demo"},
})
cmd := &cobra.Command{Use: "meta"}
cmd.Flags().String("name", "", "name")
applyRuntimeSchemaParameterMetadata(cmd, canonical)
applyRuntimeSchemaParameterMetadata(cmd, "coverage.param.meta.absent")
defs := RuntimeSchemaParameterMetadataDefinitions()
if _, ok := defs[canonical]; !ok {
t.Fatal("definitions missing registered metadata")
}
RegisterRuntimeSchemaParameterMetadata("", RuntimeSchemaParameterMetadata{Required: []string{"x"}})
}
func TestOverallCoverageGapSchemaCommandAndFieldResolve(t *testing.T) {
cmd := NewSchemaCommand()
cmd.SetOut(&bytes.Buffer{})
cmd.SetErr(&bytes.Buffer{})
cmd.SetArgs([]string{"drive", "--cli-path", "drive list"})
if err := cmd.Execute(); err == nil {
t.Fatal("cli-path with positional arg must fail")
}
cmd = NewSchemaCommand()
cmd.SetOut(&bytes.Buffer{})
cmd.SetErr(&bytes.Buffer{})
cmd.SetArgs([]string{"drive", "--all"})
if err := cmd.Execute(); err == nil {
t.Fatal("--all with path must fail")
}
realCatalogError := schemaCommandCatalogError
testseam.Swap(t, &schemaCommandCatalogError, func() error { return fmt.Errorf("catalog boom") })
cmd = NewSchemaCommand()
cmd.SetOut(&bytes.Buffer{})
cmd.SetErr(&bytes.Buffer{})
cmd.SetArgs([]string{"list"})
if err := cmd.Execute(); err == nil || !strings.Contains(err.Error(), "catalog boom") {
t.Fatalf("catalog load error = %v", err)
}
left := runtimeSchemaStringCandidateAtPriority("one", true, "same_src", 5, "same_p")
right := runtimeSchemaStringCandidateAtPriority("two", true, "same_src", 5, "same_p")
if _, err := resolveRuntimeSchemaCandidate("field", left, right); err == nil {
t.Fatal("equal-rank value conflict must fail")
}
sameA := runtimeSchemaStringCandidateAtPriority("same", true, "same_src", 5, "same_p")
sameA.ReviewReason = "z-reason"
sameB := runtimeSchemaStringCandidateAtPriority("same", true, "same_src", 5, "same_p")
sameB.ReviewReason = "a-reason"
if winner, err := resolveRuntimeSchemaCandidate("order", sameA, sameB); err != nil || winner.ReviewReason != "a-reason" {
t.Fatalf("review-reason tie-break = %#v err=%v", winner, err)
}
schemaCommandCatalogError = realCatalogError
// Delivery is installed by TestMain; exercise success + compact branches.
for _, args := range [][]string{
{},
{"--all"},
{"--cli-path", "dev", "--compact"},
} {
success := NewSchemaCommand()
success.SetOut(&bytes.Buffer{})
success.SetErr(&bytes.Buffer{})
success.SetArgs(args)
if err := success.Execute(); err != nil {
t.Fatalf("schema %v error = %v", args, err)
}
}
prevResolver := resolveRuntimeSchemaField
t.Cleanup(func() { resolveRuntimeSchemaField = prevResolver })
resolveRuntimeSchemaField = func(string, ...runtimeSchemaFieldCandidate) (runtimeSchemaFieldCandidate, error) {
return runtimeSchemaFieldCandidate{
Value: false, Present: true, Source: "reviewed",
Compared: []runtimeSchemaFieldCandidate{
{Value: false, Present: true, Source: "reviewed"},
{Value: true, Present: true, Source: "cobra_hard_required"},
{Value: false, Present: true, Source: "other"},
},
}, nil
}
floor, err := resolveRequiredProjection(true)
if err != nil || floor.Value != true || floor.Resolution != "cobra_hard_required_floor" {
t.Fatalf("cobra hard floor = %#v err=%v", floor, err)
}
resolveRuntimeSchemaField = func(string, ...runtimeSchemaFieldCandidate) (runtimeSchemaFieldCandidate, error) {
return runtimeSchemaCandidate(true, true, "reviewed"), nil
}
if got, err := resolveRequiredProjection(true); err != nil || got.Value != true {
t.Fatalf("already-required projection = %#v err=%v", got, err)
}
if got, err := resolveRequiredProjection(false); err != nil || got.Value != true {
t.Fatalf("soft required projection = %#v err=%v", got, err)
}
}
func TestOverallCoverageGapDeliveryCompletenessAndDryRun(t *testing.T) {
prevIndex := deliveryIndexResolve
prevTool := deliveryToolPayload
prevSummary := deliveryToolSummary
prevSchema := deliverySchemaPayload
prevRegistry := deliveryRegistryPayload
t.Cleanup(func() {
deliveryIndexResolve = prevIndex
deliveryToolPayload = prevTool
deliveryToolSummary = prevSummary
deliverySchemaPayload = prevSchema
deliveryRegistryPayload = prevRegistry
})
registry := SchemaRegistry{
Source: SchemaSourceRuntimeAssembled,
Products: []ProductSpec{{
ID: "sample",
Tools: []ToolSpec{{
Identity: contract.ToolIdentitySpec{
CLIPath: "sample group run", CanonicalPath: "sample.group.run", ProductID: "sample",
Name: "group.run", Path: "sample.group.run", PrimaryCLIPath: "sample group run",
Aliases: []string{"sample group r"},
},
Safety: contract.SafetySpec{Effect: "read", Risk: "low", Confirmation: "not_required", Idempotency: "yes"},
Selection: contract.SelectionSpec{AgentSummary: "s"},
}},
}},
}
index, err := registry.Index()
if err != nil {
t.Fatal(err)
}
payload, err := registry.ToSnapshotPayload()
if err != nil {
t.Fatal(err)
}
snapshot := SchemaCatalogSnapshot{
Version: SchemaCatalogSnapshotVersion, Catalog: payload.Catalog, Tools: payload.Tools,
}
snapshot.SourceHash = schemaCatalogSnapshotHash(snapshot)
loaded := loadedSchemaCatalog{Snapshot: snapshot, Registry: registry, Index: index}
root := &cobra.Command{Use: "dws"}
sample := &cobra.Command{Use: "sample"}
group := &cobra.Command{Use: "group"}
run := &cobra.Command{Use: "run", Run: func(*cobra.Command, []string) {}}
group.AddCommand(run)
sample.AddCommand(group)
root.AddCommand(sample)
identity := map[string]runtimeSchemaResolvedIdentity{
"sample group run": {CanonicalPath: "sample.group.run", Source: "reviewed"},
"sample group r": {CanonicalPath: "other.run", Source: "reviewed"},
}
deliveryIndexResolve = func(SchemaIndex, string) (ToolSpec, bool) { return ToolSpec{}, false }
report := schemaCatalogDeliveryCompletenessAgainstLoadedAndIdentity(root, loaded, nil, identity, []string{"map boom"})
if len(report.DeliveryErrors) == 0 {
t.Fatal("lost index / mapping errors must surface")
}
deliveryIndexResolve = prevIndex
deliverySchemaPayload = func(loadedSchemaCatalog, []string) (map[string]any, error) {
return nil, fmt.Errorf("query boom")
}
report = schemaCatalogDeliveryCompletenessAgainstLoadedAndIdentity(root, loaded, nil, map[string]runtimeSchemaResolvedIdentity{
"sample group run": {CanonicalPath: "sample.group.run", Source: "reviewed"},
}, nil)
if len(report.DeliveryErrors) == 0 {
t.Fatal("query failures must surface in completeness")
}
deliverySchemaPayload = func(_ loadedSchemaCatalog, args []string) (map[string]any, error) {
return map[string]any{"canonical_path": "wrong." + strings.Join(args, ".")}, nil
}
report = schemaCatalogDeliveryCompletenessAgainstLoadedAndIdentity(root, loaded, nil, map[string]runtimeSchemaResolvedIdentity{
"sample group run": {CanonicalPath: "sample.group.run", Source: "reviewed"},
}, nil)
if len(report.DeliveryErrors) == 0 {
t.Fatal("canonical mismatch must surface")
}
deliverySchemaPayload = prevSchema
deliveryToolPayload = func(ToolSpec) (map[string]any, error) { return nil, fmt.Errorf("render boom") }
report = schemaCatalogDeliveryCompletenessAgainstLoadedAndIdentity(root, loaded, nil, map[string]runtimeSchemaResolvedIdentity{
"sample group run": {CanonicalPath: "sample.group.run", Source: "reviewed"},
}, nil)
if len(report.DeliveryErrors) == 0 {
t.Fatal("tool render failures must surface")
}
deliveryToolPayload = prevTool
deliveryRegistryPayload = func(SchemaRegistry) (map[string]any, error) { return nil, fmt.Errorf("all boom") }
if problems := schemaRegistryProjectionErrors(loaded); len(problems) == 0 {
t.Fatal("--all render failure must surface")
}
deliveryRegistryPayload = func(SchemaRegistry) (map[string]any, error) {
return map[string]any{"products": []any{map[string]any{"tools": []any{
map[string]any{"name": "missing"},
map[string]any{"canonical_path": "sample.group.run"},
map[string]any{"canonical_path": "sample.group.run"},
}}}}, nil
}
if problems := schemaRegistryProjectionErrors(loaded); len(problems) < 2 {
t.Fatalf("duplicate/missing canonical problems = %v", problems)
}
deliveryRegistryPayload = prevRegistry
deliveryToolPayload = func(ToolSpec) (map[string]any, error) { return nil, fmt.Errorf("tool boom") }
if problems := schemaRegistryProjectionErrors(loaded); len(problems) == 0 {
t.Fatal("tool projection render failure must surface")
}
deliveryToolPayload = prevTool
deliveryToolSummary = func(ToolSpec) (map[string]any, error) { return nil, fmt.Errorf("summary boom") }
if problems := schemaRegistryProjectionErrors(loaded); len(problems) == 0 {
t.Fatal("group summary render failure must surface")
}
deliveryToolSummary = prevSummary
bound := BoundCommandRegistry{Commands: []BoundCommandSpec{
{CommandSpec: CommandSpec{CanonicalPath: "a.one", PrimaryCLIPath: "a one", Visibility: SchemaVisibilityPublic, Source: "s"}},
{CommandSpec: CommandSpec{CanonicalPath: "a.two", PrimaryCLIPath: "a one", Visibility: SchemaVisibilityPublic, Source: "s"}},
{CommandSpec: CommandSpec{CanonicalPath: "b.hidden", PrimaryCLIPath: "b hide", Visibility: SchemaVisibilityInternal, Source: "s"}},
{CommandSpec: CommandSpec{CanonicalPath: "c.blank", PrimaryCLIPath: " ", Visibility: SchemaVisibilityPublic, Source: "s"}},
}}
if _, conflicts := runtimeSchemaIdentityByBound(bound); len(conflicts) == 0 {
t.Fatal("path ownership conflicts must surface")
}
t.Cleanup(clearDeclaredDryRunCapabilitiesForTest)
restore := setReviewedDryRunCapabilityGroupsForTest([]dryRunCapabilityGroup{
{PreviewKind: contract.DryRunPreviewPlan, CanonicalPaths: []string{"gap.run"}},
{PreviewKind: contract.DryRunPreviewPlan, CanonicalPaths: []string{"gap.run"}},
})
t.Cleanup(restore)
if _, err := loadManualDryRunCapabilities(); err == nil || !strings.Contains(err.Error(), "duplicate") {
t.Fatalf("cross-group duplicate dry-run error = %v", err)
}
restore = setReviewedDryRunCapabilityGroupsForTest([]dryRunCapabilityGroup{
{PreviewKind: contract.DryRunPreviewPlan, CanonicalPaths: []string{"gap.run"}},
})
t.Cleanup(restore)
if err := ValidateReviewedDryRunCapabilityDelivery(SchemaRegistry{}); err == nil || !strings.Contains(err.Error(), "missing") {
t.Fatalf("missing dry-run delivery error = %v", err)
}
mismatch := SchemaRegistry{Products: []ProductSpec{{Tools: []ToolSpec{{
Identity: contract.ToolIdentitySpec{CanonicalPath: "gap.run"},
DryRun: &contract.DryRunSpec{PreviewKind: contract.DryRunPreviewDiff},
}}}}}
if err := ValidateReviewedDryRunCapabilityDelivery(mismatch); err == nil || !strings.Contains(err.Error(), "dry-run capability") {
t.Fatalf("mismatched dry-run delivery error = %v", err)
}
unreviewed := SchemaRegistry{Products: []ProductSpec{{Tools: []ToolSpec{{
Identity: contract.ToolIdentitySpec{CanonicalPath: "other.run"},
DryRun: &contract.DryRunSpec{PreviewKind: contract.DryRunPreviewPlan},
}}}}}
if err := ValidateReviewedDryRunCapabilityDelivery(unreviewed); err == nil || !strings.Contains(err.Error(), "unreviewed") {
t.Fatalf("unreviewed dry-run delivery error = %v", err)
}
leafCount := 0
walkLeafCommands(root, func(*cobra.Command) { leafCount++ })
hidden := &cobra.Command{Use: "hidden", Hidden: true}
root.AddCommand(hidden)
hiddenLeafCount := 0
walkLeafCommands(root, func(*cobra.Command) { hiddenLeafCount++ })
if leafCount == 0 || hiddenLeafCount != leafCount {
t.Fatalf("walkLeafCommands must skip hidden leaves: before=%d after=%d", leafCount, hiddenLeafCount)
}
if hasRuntimeSchemaCommand(nil) {
t.Fatal("nil command must not report runtime schema")
}
summary := agentMetadataSummaryFromProducts([]ProductSpec{{
ID: "p",
Selection: contract.SelectionSpec{AgentSummary: "P", UseWhen: []string{"u"}, AvoidWhen: []string{"a"}},
Tools: []ToolSpec{{
Selection: contract.SelectionSpec{AgentSummary: "T", UseWhen: []string{"u"}, AvoidWhen: []string{"a"}, Examples: []string{"dws p t"}},
}},
}})
if summary["source"] != ProvenanceEmbeddedSkillMetadata || summary["version"] != 1 ||
summary["products_with_metadata"] != 1 || summary["tools_with_metadata"] != 1 ||
summary["surface_products"] != 1 || summary["surface_tools"] != 1 ||
summary["tools_with_agent_summary"] != 1 {
t.Fatalf("agentMetadataSummaryFromProducts = %#v", summary)
}
testseam.Swap(t, &schemaParameterBindingData, func() (schemaParameterBindingSnapshot, error) {
return schemaParameterBindingSnapshot{Bindings: map[string]map[string]string{"a.b": {"flag": "prop"}}}, nil
})
if got, err := LoadSchemaParameterBindings(); err != nil || got["a.b"]["flag"] != "prop" {
t.Fatalf("LoadSchemaParameterBindings() = %#v err=%v", got, err)
}
if _, err := buildInterfaceRegistry(map[string]embeddedMCPToolMetadata{"": {}}); err == nil {
t.Fatal("empty canonical interface registry must fail")
}
if _, err := buildInterfaceRegistry(map[string]embeddedMCPToolMetadata{"a.b": {}}); err == nil {
t.Fatal("missing interface_ref must fail")
}
if _, err := buildInterfaceRegistry(map[string]embeddedMCPToolMetadata{
"a.b": {InterfaceRef: &embeddedMCPInterfaceRef{ProductID: "a", RPCName: "b"}},
" a.b ": {InterfaceRef: &embeddedMCPInterfaceRef{ProductID: "a", RPCName: "b"}},
}); err == nil {
t.Fatal("conflicting canonical paths must fail")
}
if _, err := buildInterfaceRegistry(map[string]embeddedMCPToolMetadata{
"a.b": {InterfaceRef: &embeddedMCPInterfaceRef{ProductID: "", RPCName: "b"}},
}); err == nil {
t.Fatal("incomplete interface_ref must fail")
}
if err := validateSchemaRegistryInterfacesWithMetadata(SchemaRegistry{Products: []ProductSpec{{
Tools: []ToolSpec{{Identity: contract.ToolIdentitySpec{}, Interface: contract.InterfaceSpec{Mode: "bogus"}}},
}}}, embeddedMCPMetadata{}); err == nil {
t.Fatal("invalid interface disposition must fail")
}
if err := validateToolInterfaceRef("x", "mcp", nil, InterfaceRegistry{}); err == nil {
t.Fatal("nil interface_ref must fail")
}
}
func TestOverallCoverageGapRuntimeParamsAndAgentMetadata(t *testing.T) {
prevSpecs := runtimeCommandParameterSpecsForPayload
t.Cleanup(func() { runtimeCommandParameterSpecsForPayload = prevSpecs })
runtimeCommandParameterSpecsForPayload = func(*cobra.Command, string, RuntimeSchemaConstraints) ([]ParameterSpec, error) {
return nil, fmt.Errorf("specs boom")
}
if _, err := runtimeCommandParameters(&cobra.Command{Use: "run"}, "sample.run", RuntimeSchemaConstraints{}); err == nil {
t.Fatal("parameter specs error must surface")
}
runtimeCommandParameterSpecsForPayload = func(*cobra.Command, string, RuntimeSchemaConstraints) ([]ParameterSpec, error) {
return []ParameterSpec{{Name: "ok", Type: "string"}}, nil
}
payload, err := runtimeCommandParameters(&cobra.Command{Use: "run"}, "sample.run", RuntimeSchemaConstraints{})
if err != nil || payload["ok"] == nil {
t.Fatalf("parameter payload = %#v err=%v", payload, err)
}
flags := &cobra.Command{Use: "run"}
flags.Flags().String("need", "", "required value")
_ = flags.MarkFlagRequired("need")
flag := flags.Flags().Lookup("need")
setFlagAnnotation(flag, runtimeSchemaFlagRequiredAnnotation, "not-bool")
if required, present := runtimeFlagRequiredState(flag); !required || !present {
t.Fatalf("cobra hard required fallback = %v/%v", required, present)
}
if _, err := collectRuntimeSchemaEntriesFromBound(BoundCommandRegistry{Commands: []BoundCommandSpec{
{CommandSpec: CommandSpec{CanonicalPath: "bad", Visibility: SchemaVisibilityPublic, PrimaryCLIPath: "bad"}},
}}); err == nil {
t.Fatal("invalid canonical must fail collect")
}
hidden := &cobra.Command{Use: "hide", Run: func(*cobra.Command, []string) {}}
entries, err := collectRuntimeSchemaEntriesFromBound(BoundCommandRegistry{Commands: []BoundCommandSpec{
{CommandSpec: CommandSpec{CanonicalPath: "sample.hide", Visibility: SchemaVisibilityInternal, PrimaryCLIPath: "sample hide"}, PrimaryCommand: hidden},
}})
if err != nil || len(entries) != 0 {
t.Fatalf("internal visibility entries = %#v err=%v", entries, err)
}
tool := ToolSpec{
Identity: contract.ToolIdentitySpec{
CLIPath: "sample group run", CanonicalPath: "sample.group.run", ProductID: "sample",
Name: "group.run", Path: "sample.group.run", PrimaryCLIPath: "sample group run",
Aliases: []string{"ghost group run"},
},
Safety: contract.SafetySpec{Effect: "read", Risk: "low", Confirmation: "not_required", Idempotency: "yes"},
Selection: contract.SelectionSpec{AgentSummary: "s"},
}
registry := SchemaRegistry{Source: SchemaSourceRuntimeAssembled, Products: []ProductSpec{{ID: "sample", Tools: []ToolSpec{tool}}}}
index, err := registry.Index()
if err != nil {
t.Fatal(err)
}
payloadSnap, err := registry.ToSnapshotPayload()
if err != nil {
t.Fatal(err)
}
loaded := loadedSchemaCatalog{
Registry: registry, Index: index,
Snapshot: SchemaCatalogSnapshot{Version: SchemaCatalogSnapshotVersion, Catalog: payloadSnap.Catalog, Tools: payloadSnap.Tools},
}
loaded.Snapshot.SourceHash = schemaCatalogSnapshotHash(loaded.Snapshot)
if problems := schemaRegistryProjectionErrors(loaded); len(problems) == 0 {
t.Fatal("ghost group product miss must surface")
}
testseam.Swap(t, &finalSchemaAgentMetadata, func() agentMetadata {
return agentMetadata{Tools: map[string]agentToolMetadata{
"sample.group.run": {},
"sample group run": {},
}}
})
if err := validateSchemaRegistryAgentMetadata(registry); err == nil || !strings.Contains(err.Error(), "both resolve") {
t.Fatalf("duplicate agent metadata keys error = %v", err)
}
testseam.Swap(t, &finalSchemaAgentMetadata, func() agentMetadata {
return agentMetadata{Tools: map[string]agentToolMetadata{"sample.group.run": {}}}
})
if err := validateSchemaRegistryAgentMetadata(registry); err != nil {
t.Fatalf("matching agent metadata should pass: %v", err)
}
badTool := tool
badTool.Identity.CanonicalPath = "sample.run"
if err := validateFinalSchemaProvenanceCoverage(SchemaRegistry{Products: []ProductSpec{{
ID: "sample", Selection: contract.SelectionSpec{AgentSummary: "p", UseWhen: []string{"u"}, AvoidWhen: []string{"a"}},
Tools: []ToolSpec{badTool},
}}}); err == nil {
t.Fatal("invalid tool provenance coverage must fail")
}
restore := setReviewedDryRunCapabilityGroupsForTest([]dryRunCapabilityGroup{
{PreviewKind: "bogus", CanonicalPaths: []string{"gap.run"}},
})
t.Cleanup(restore)
if _, err := ReviewedDryRunCapabilities(); err == nil {
t.Fatal("invalid dry-run preview kind must fail capability load")
}
if err := ValidateReviewedDryRunCapabilityDelivery(SchemaRegistry{}); err == nil {
t.Fatal("invalid dry-run registry must fail delivery validation")
}
}
func TestCrossPlatformCoverageOverallRegressionRecovery(t *testing.T) {
left := runtimeSchemaStringCandidateAtPriority("same", true, "z-source", 5, "p")
right := runtimeSchemaStringCandidateAtPriority("same", true, "a-source", 5, "p")
winner, err := resolveRuntimeSchemaCandidate("source-order", left, right)
if err != nil || winner.Source != "a-source" {
t.Fatalf("source tie-break = %#v err=%v", winner, err)
}
if validCommandRegistryCLIPath("bad!token") {
t.Fatal("invalid CLI path token must fail validation")
}
registry := EffectiveCommandRegistry{Commands: []CommandSpec{{
CanonicalPath: "sample.run", PrimaryCLIPath: "sample run",
}}}
if got := registry.SourceHash(); got == "" {
t.Fatal("default visibility hash must be non-empty")
}
if got := stableUniqueStrings([]string{"", "a", "a", " b ", "b"}); len(got) != 2 || got[0] != "a" || got[1] != "b" {
t.Fatalf("stableUniqueStrings = %#v", got)
}
root := &cobra.Command{Use: "dws"}
root.AddCommand(&cobra.Command{Use: "help"})
run := &cobra.Command{Use: "run", Run: func(*cobra.Command, []string) {}}
root.AddCommand(run)
visited := 0
walkLeafCommands(root, func(*cobra.Command) { visited++ })
if visited != 1 {
t.Fatalf("walkLeafCommands visited %d leaves, want 1", visited)
}
if _, err := (SchemaRegistry{Products: []ProductSpec{{ID: "", Tools: []ToolSpec{}}}}).ToSnapshotPayload(); err == nil {
t.Fatal("empty product id must fail ToSnapshotPayload")
}
prevExclusions := reviewedSchemaParameterMappingExclusions
t.Cleanup(func() { reviewedSchemaParameterMappingExclusions = prevExclusions })
reviewedSchemaParameterMappingExclusions = map[string]string{}
if _, err := loadSchemaParameterBindingSnapshot(); err == nil {
t.Fatal("empty mapping exclusions ledger must fail load")
}
cmd := NewSchemaCommand()
cmd.SetOut(&bytes.Buffer{})
cmd.SetErr(&bytes.Buffer{})
cmd.SetArgs([]string{"__coverage_gate_unknown_schema_path__"})
if err := cmd.Execute(); err == nil {
t.Fatal("unknown schema path must fail schema command")
}
}