relay-knowledge 1.1.17

Graph-database-based knowledge graph project.
Documentation
use std::collections::BTreeSet;

use super::{is_known_tool, tools_list_result};

#[test]
fn published_tools_are_unique_and_recognized_by_dispatch() {
    let result = tools_list_result();
    let names = result["tools"]
        .as_array()
        .expect("tool array")
        .iter()
        .map(|tool| tool["name"].as_str().expect("tool name"))
        .collect::<Vec<_>>();
    let unique = names.iter().copied().collect::<BTreeSet<_>>();

    assert_eq!(unique.len(), names.len());
    assert!(names.iter().all(|name| is_known_tool(name)));
}

#[test]
fn unknown_tool_names_are_not_admitted() {
    assert!(!is_known_tool("relay_unknown"));
    assert!(!is_known_tool(""));
}