relay-knowledge 1.1.16

Graph-database-based knowledge graph project.
Documentation
use super::*;

#[test]
fn scope_metadata_filters_preserve_first_seen_order_without_duplicates() {
    let merged = merged_filters(
        &["src/**".to_owned(), "tests/**".to_owned()],
        &["tests/**".to_owned(), "docs/**".to_owned()],
    );

    assert_eq!(merged, ["src/**", "tests/**", "docs/**"]);
}

#[test]
fn freshness_merge_adds_returned_context_paths_to_agent_instructions() {
    let mut freshness =
        CodeRepositoryFreshnessDiagnostics::code_query(CodeRepositoryFreshnessInput {
            graph_version: 1,
            freshness_policy: FreshnessPolicy::AllowStale,
            source_scope: Some("scope".to_owned()),
            requested_ref: "HEAD".to_owned(),
            requested_resolved_ref: "new".to_owned(),
            served_ref: "old".to_owned(),
            scope_stale: true,
            stale_reason: Some("active index".to_owned()),
            degraded_reason: None,
            pending: CodeRepositoryPendingIndexWork::default(),
            cursor: None,
            direct_source_read_paths: vec!["src/lib.rs".to_owned()],
        });

    freshness.merge_direct_source_read_paths(["src/main.rs".to_owned(), "src/lib.rs".to_owned()]);

    assert_eq!(
        freshness.direct_source_read_paths,
        vec!["src/lib.rs".to_owned(), "src/main.rs".to_owned()]
    );
    assert!(freshness.agent_instructions.iter().any(|instruction| {
        instruction.contains("src/lib.rs") && instruction.contains("src/main.rs")
    }));
}