relay-knowledge 1.1.17

Graph-database-based knowledge graph project.
Documentation
use super::{repo_list, repo_register, repo_remove, repo_report, repo_status};

#[test]
fn lifecycle_specs_keep_distinct_paths_and_operational_effects() {
    let specs = [
        repo_list(),
        repo_register(),
        repo_remove(),
        repo_status(),
        repo_report(),
    ];
    let paths = specs
        .iter()
        .map(|spec| spec.path.as_slice())
        .collect::<Vec<_>>();

    assert_eq!(
        paths,
        [
            ["repo", "list"].as_slice(),
            ["repo", "register"].as_slice(),
            ["repo", "remove"].as_slice(),
            ["repo", "status"].as_slice(),
            ["repo", "report"].as_slice(),
        ]
    );
    assert!(
        repo_register()
            .options
            .iter()
            .any(|option| option.flag == "--alias")
    );
    assert!(repo_remove().options.is_empty());
    assert_eq!(repo_remove().arguments[0].name, "alias");
    assert_eq!(repo_list().operation, "code.repo.list");
    assert!(repo_list().arguments.is_empty());
}