MCPcopy Index your code
hub / github.com/AI45Lab/Code / program_template_validation_reports_asset_issues

Function program_template_validation_reports_asset_issues

core/src/program.rs:994–1028  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

992
993 #[test]
994 fn program_template_validation_reports_asset_issues() {
995 let template = ProgramTemplate::new("bad name", "")
996 .with_parameter(ProgramParameter::required("query", "Query"))
997 .with_parameter(ProgramParameter::required("query", "Duplicate query"))
998 .with_step(
999 ProgramStepTemplate::new(
1000 "",
1001 serde_json::json!({
1002 "pattern": "{{missing}}",
1003 "dangling": "{{query"
1004 }),
1005 )
1006 .with_label("scan"),
1007 )
1008 .with_step(
1009 ProgramStepTemplate::new("grep", serde_json::json!({ "pattern": "{{query}}" }))
1010 .with_label("scan"),
1011 );
1012
1013 let validation = template.validate();
1014 let codes = validation
1015 .issues
1016 .iter()
1017 .map(|issue| issue.code.as_str())
1018 .collect::<Vec<_>>();
1019
1020 assert!(!validation.is_valid());
1021 assert!(codes.contains(&"invalid_name"));
1022 assert!(codes.contains(&"empty_description"));
1023 assert!(codes.contains(&"duplicate_parameter"));
1024 assert!(codes.contains(&"empty_tool_name"));
1025 assert!(codes.contains(&"unknown_placeholder"));
1026 assert!(codes.contains(&"malformed_placeholder"));
1027 assert!(codes.contains(&"duplicate_step_label"));
1028 }
1029
1030 #[test]
1031 fn program_catalog_try_register_rejects_invalid_template() {

Callers

nothing calls this directly

Calls 5

with_stepMethod · 0.80
with_parameterMethod · 0.80
with_labelMethod · 0.80
validateMethod · 0.45
as_strMethod · 0.45

Tested by

no test coverage detected