harn-lint 0.10.141

Linter for the Harn programming language
use super::*;

const RULE: &str = "schema-shaped-tool-parameters";

#[test]
fn schema_shaped_parameters_are_reported_on_a_tool_descriptor() {
    let diagnostics = lint_source(
        r#"
pipeline main() {
  const tools = [
    {name: "read_file", parameters: {type: "object", required: ["path"]}},
    {name: "search", parameters: {type: "object"}},
  ]
  return tools
}
"#,
    );

    assert_eq!(count_rule(&diagnostics, RULE), 2);
}

#[test]
fn a_real_parameter_map_and_an_input_schema_are_not_reported() {
    let diagnostics = lint_source(
        r#"
pipeline main() {
  const tools = [
    {name: "read_file", parameters: {path: {type: "string", required: true}}},
    {name: "search", inputSchema: {type: "object", required: ["query"]}},
    {name: "noop", parameters: {}},
  ]
  return tools
}
"#,
    );

    assert!(!has_rule(&diagnostics, RULE));
}