Files
tutti/services/tuttid/service/cli/input_validation_test.go
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

30 lines
1.2 KiB
Go

package cli
import "testing"
func TestValidateCapabilityInputSchemaRejectsConstraintsTheInvokerCannotEnforce(t *testing.T) {
for name, schema := range map[string]map[string]any{
"ref": {"type": "object", "$ref": "#/$defs/input", "$defs": map[string]any{}},
"nullable": {"type": []any{"object", "null"}},
"pattern": {"type": "object", "properties": map[string]any{"name": map[string]any{"type": "string", "pattern": "^[a-z]+$"}}},
} {
t.Run(name, func(t *testing.T) {
if err := ValidateCapabilityInputSchema(schema); err == nil {
t.Fatalf("unsupported schema was accepted: %#v", schema)
}
})
}
}
func TestValidateCapabilityInputSchemaAcceptsFullyEnforcedSubset(t *testing.T) {
schema := map[string]any{"type": "object", "additionalProperties": false, "required": []any{"count"},
"properties": map[string]any{
"count": map[string]any{"type": "integer", "minimum": float64(1), "maximum": float64(10)},
"mode": map[string]any{"type": "string", "enum": []any{"safe", "fast"}},
"tags": map[string]any{"type": "array", "items": map[string]any{"type": "string"}},
}}
if err := ValidateCapabilityInputSchema(schema); err != nil {
t.Fatal(err)
}
}