// file: crates/ksp-raw-transaction-lib/tests/dependency_boundary.rs // version: 4 //! Dependency-boundary canaries for the common RAW Transaction foundation. fn manifest() -> std::string::String { return std::fs::read_to_string(std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("Cargo.toml")).unwrap_or_default(); } fn production_sources() -> std::string::String { let root = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("src"); let mut combined = std::string::String::new(); for name in ["acquisition.rs", "canonical.rs", "error.rs", "lib.rs", "signature.rs", "wire.rs"] { let source = std::fs::read_to_string(root.join(name)).unwrap_or_default(); combined.push_str(source.as_str()); } return combined; } #[test] fn pre_004_manifest_adds_only_base64_to_the_exact_common_dependency_surface() { let manifest = manifest(); assert!(manifest.contains("base64.workspace = true")); assert!(manifest.contains("ksp-core-lib = { path = \"../ksp-core-lib\" }")); assert!(manifest.contains("ksp-store-api = { path = \"../ksp-store-api\" }")); assert!(manifest.contains("serde_json = { workspace = true }")); assert!(manifest.contains("sha2 = { workspace = true }")); for forbidden in ["ksp-store-lib", "ksp-onchain-transport-lib", "ksp-config-lib", "ksp-job-api", "ksp-job-backfill-lib", "ksp-worker-api", "tokio", "futures"] { assert!(!manifest.contains(forbidden)); } return; } #[test] fn pre_002_production_sources_keep_transport_runtime_job_worker_and_backend_out() { let sources = production_sources(); for forbidden in [ "ksp_store_lib", "ksp_onchain_transport_lib", "ksp_config_lib", "ksp_job_api", "ksp_job_backfill_lib", "ksp_worker_api", "ksp_store_postgres_lib", "tokio::", "futures::", "reqwest::", "tonic::", ] { assert!(!sources.contains(forbidden)); } return; }