0.0.1-alpha.5.fix.1

This commit is contained in:
2026-09-28 10:02:47 +02:00
parent c17b7068a3
commit a1b56af8ed
23 changed files with 427 additions and 55 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/knowledge-sync-api/src/lib.rs
// version: 1
// version: 2
//! Contracts for provider-neutral repository synchronization signals.
//!
@@ -54,4 +54,5 @@ pub trait RepositoryEventSource {
}
#[cfg(test)]
mod unit_tests;
#[path = "../unit_tests/lib.rs"]
mod tests;

View File

@@ -1,45 +0,0 @@
// file: crates/knowledge-sync-api/src/unit_tests.rs
// version: 1
#[derive(Debug, Eq, PartialEq)]
struct FakeEventError;
struct OneShotEventSource {
signal: Option<crate::RepositorySyncSignal>,
}
impl crate::RepositoryEventSource for OneShotEventSource {
type Error = FakeEventError;
fn next_signal(&mut self) -> Result<Option<crate::RepositorySyncSignal>, Self::Error> {
return Ok(self.signal.take());
}
}
#[test]
fn external_signal_is_only_a_request_to_reconcile_a_source() {
let source_result = knowledge_domain_lib::SourceId::new("snippets-extra");
assert!(source_result.is_ok());
let source_id = match source_result {
Ok(value) => value,
Err(_) => return,
};
let signal = crate::RepositorySyncSignal::new(source_id, crate::RepositorySyncCause::ExternalSignal);
let mut event_source = OneShotEventSource { signal: Some(signal) };
let first_result = crate::RepositoryEventSource::next_signal(&mut event_source);
assert!(first_result.is_ok());
let first = match first_result {
Ok(value) => value,
Err(_) => return,
};
assert!(first.is_some());
let signal = match first {
Some(value) => value,
None => return,
};
assert_eq!(signal.source_id().as_str(), "snippets-extra");
assert_eq!(signal.cause(), crate::RepositorySyncCause::ExternalSignal);
let second_result = crate::RepositoryEventSource::next_signal(&mut event_source);
assert_eq!(second_result, Ok(None));
return;
}