relay-knowledge 1.1.14

Graph-database-based knowledge graph project.
Documentation
use rusqlite::types::Value;

use crate::domain::{
    CodeRepositorySelector, CodebaseViewKind, CodebaseViewRequest, FreshnessPolicy,
};

use super::append_file_focus;

#[test]
fn root_changed_files_focus_root_siblings() {
    let request = CodebaseViewRequest::new(
        CodeRepositorySelector::new("repo", "HEAD", Vec::new(), Vec::new()).unwrap(),
        CodebaseViewKind::AffectedScope,
        FreshnessPolicy::AllowStale,
        10,
        vec!["Cargo.toml".to_owned()],
    )
    .unwrap();
    let mut sql = "SELECT path FROM code_repository_files WHERE source_scope = ?1".to_owned();
    let mut values = Vec::new();

    append_file_focus(&mut sql, &mut values, &request);

    assert!(sql.contains("path = ? OR path LIKE ? ESCAPE '\\'"));
    assert!(sql.contains("path NOT LIKE ?"));
    assert_eq!(values[0], Value::Text("Cargo.toml".to_owned()));
    assert_eq!(values[2], Value::Text("%/%".to_owned()));
}