// file: crates/ksp-app-raw-transaction-ingest-desk/tests/dependency_boundary.rs // version: 5 //! Dependency-boundary canaries for Raw Transaction Ingest Desk Start-resource reconstruction. #![forbid(unsafe_code)] #![deny(unreachable_pub)] #![warn(missing_docs)] fn app_root() -> std::path::PathBuf { return std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")); } fn read_text(path: &std::path::Path) -> String { let source = std::fs::read_to_string(path); assert!(source.is_ok(), "unable to read {}", path.display()); return match source { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => String::new(), }; } #[test] fn pre_008_manifest_adds_store_facade_and_worker_api_without_physical_backend_edge() { let manifest = read_text(app_root().join("Cargo.toml").as_path()); for required in [ "ksp-config-lib", "ksp-core-lib", "ksp-logging-lib", "ksp-onchain-transport-lib", "ksp-store-lib", "ksp-worker-api", "ksp-worker-raw-transaction-ingest-lib", "tauri-plugin-tracing", ] { assert!(manifest.contains(required), "missing pre.008 dependency {required}"); } for forbidden in ["ksp-store-api", "ksp-store-postgres-lib", "ksp-job-backfill-lib", "reqwest", "tokio-postgres", "tonic", "yellowstone-grpc"] { assert!(!manifest.contains(forbidden), "pre.008 opens forbidden direct dependency {forbidden}"); } } #[test] fn pre_007_route_start_reconstructs_exact_worker_sources_without_network_store_or_worker_launch() { let source = read_text(app_root().join("src/route_start.rs").as_path()); for required in [ "HttpTransportPool::new", "YellowstoneGrpcChannel::prepare", "RawTransactionIngestYellowstoneSource::new", "RawTransactionIngestStandardLogsSource::new", "RawTransactionIngestStandardBlockSource::new", "RawTransactionIngestHeliusTransactionSource::new", "RawTransactionIngestHttpBlockPollingSource::new", ] { assert!(source.contains(required), "missing exact resource constructor {required}"); } for forbidden in [ "YellowstoneGrpcChannel::connect", "SolanaStandardWsSession::connect", "HeliusWsSession::connect", "Store::open", "RawTransactionIngestWorker::", "start_with_runtime_resources", "request_stop", ] { assert!(!source.contains(forbidden), "pre.007 performs premature runtime operation {forbidden}"); } } #[test] fn pre_008_route_runtime_owns_real_store_worker_start_stop_without_physical_backend_types() { let source = read_text(app_root().join("src/route_runtime.rs").as_path()); for required in [ "Store::open", "StoreHealthState::Ready", "RawTransactionIngestWorker::start_with_runtime_resources", "request_stop", "wait_terminal", ".close().await", "Arc::try_unwrap", ] { assert!(source.contains(required), "missing mono-route runtime operation {required}"); } for forbidden in ["tokio_postgres", "ksp_store_postgres_lib", "PostgresStore", "connection_uri", "endpoint_url"] { assert!(!source.contains(forbidden), "pre.008 crosses physical or secret boundary {forbidden}"); } } #[test] fn pre_010_monitoring_projects_existing_worker_snapshot_facade_without_new_backend_edges() { let source = read_text(app_root().join("src/route_monitoring.rs").as_path()); for required in ["RawTransactionIngestSnapshot", "worker_snapshot()", "source_reconnect_total()", "source_replay_attempt_total()", "gaps()"] { assert!(source.contains(required), "missing Worker snapshot facade marker {required}"); } for forbidden in ["tokio_postgres", "ksp_store_postgres_lib", "reqwest", "tonic", "yellowstone_grpc_client"] { assert!(!source.contains(forbidden), "monitoring opens forbidden backend edge {forbidden}"); } }