53 lines
1.8 KiB
Rust
53 lines
1.8 KiB
Rust
// file: crates/ksp-raw-transaction-lib/tests/dependency_boundary.rs
|
|
// version: 1
|
|
|
|
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"] {
|
|
let source = std::fs::read_to_string(root.join(name)).unwrap_or_default();
|
|
combined.push_str(source.as_str());
|
|
}
|
|
return combined;
|
|
}
|
|
|
|
#[test]
|
|
fn pre_002_manifest_uses_api_models_and_exact_common_dependencies() {
|
|
let manifest = manifest();
|
|
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;
|
|
}
|