relay-knowledge 1.1.17

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

#[test]
fn occurred_label_only_adds_present_timestamps() {
    assert_eq!(occurred_label(Some("2026-07-31")), " at 2026-07-31");
    assert_eq!(occurred_label(None), "");
}

#[test]
fn load_events_filters_by_graph_version_and_status() {
    let connection = Connection::open_in_memory().expect("database should open");
    connection
        .execute_batch(
            "
            CREATE TABLE graph_events (
                id TEXT PRIMARY KEY,
                event_type TEXT NOT NULL,
                occurred_at TEXT,
                evidence_ids_json TEXT NOT NULL,
                confidence_basis_points INTEGER NOT NULL,
                status TEXT NOT NULL,
                created_graph_version INTEGER NOT NULL,
                valid_from_graph_version INTEGER NOT NULL,
                valid_until_graph_version INTEGER
            );
            CREATE TABLE graph_event_entities (
                event_id TEXT NOT NULL,
                entity_id TEXT NOT NULL
            );
            CREATE TABLE entities (
                id TEXT PRIMARY KEY,
                label TEXT NOT NULL
            );
            INSERT INTO entities (id, label) VALUES ('entity-1', 'Relay');
            INSERT INTO graph_events VALUES
                ('visible', 'release', '2026-07-31', '[]', 9000, 'accepted', 1, 1, NULL),
                ('future', 'release', '2027-01-01', '[]', 9000, 'accepted', 2, 2, NULL),
                ('rejected', 'release', '2026-01-01', '[]', 9000, 'rejected', 1, 1, NULL);
            INSERT INTO graph_event_entities VALUES
                ('visible', 'entity-1'),
                ('future', 'entity-1'),
                ('rejected', 'entity-1');
            ",
        )
        .expect("event schema should initialize");
    let request = GraphSearchRequest {
        query: "timeline".to_owned(),
        source_scope: None,
        graph_version: crate::domain::GraphVersion::new(1),
        limit: 10,
        disabled_retriever_sources: Vec::new(),
    };

    let events = load_events(&connection, &request).expect("events should load");

    assert_eq!(events.len(), 1);
    assert_eq!(events[0].id, "visible");
    assert_eq!(events[0].labels, "Relay");
}