sk-store 2.1.0

SimKube trace store library
Documentation
mod pod_watcher_test;

use futures::stream;
use mockall::predicate;
use rstest::*;
use sk_core::prelude::*;
use sk_testutils::*;
use tracing_test::traced_test;

use super::*;
use crate::mock::MockTraceStore;
use crate::watchers::MockEventHandler;

#[rstest]
#[tokio::test]
async fn test_handle_initialize_event() {
    let deployments: Vec<_> = (0..3).map(|i| test_deployment(&format!("depl{i}"))).collect();
    let mut handler = Box::new(MockEventHandler::new());
    handler
        .expect_initialized()
        .with(predicate::eq(deployments.clone()), predicate::eq(0), predicate::always())
        .returning(|_, _, _| Ok(()))
        .once();

    let (mut watcher, _) = ObjWatcher::<DynamicObject>::new(
        handler,
        Box::pin(stream::empty()),
        Arc::new(Mutex::new(MockTraceStore::new())),
    );

    watcher.handle_event(&Event::Init, 0).await.unwrap();
    for depl in deployments {
        watcher.handle_event(&Event::InitApply(depl), 0).await.unwrap();
    }
    watcher.handle_event(&Event::InitDone, 0).await.unwrap();
}