67 lines
2.2 KiB
Rust
67 lines
2.2 KiB
Rust
// file: crates/ksp-job-backfill-lib/tests/dependency_boundary.rs
|
|
// version: 1
|
|
|
|
//! Dependency firewall canaries for the concrete Backfill foundation.
|
|
|
|
#[test]
|
|
fn pre_005_manifest_uses_only_planned_ksp_edges_and_backend_neutral_store() {
|
|
let manifest = include_str!("../Cargo.toml");
|
|
for required in [
|
|
"ksp-core-lib = { path = \"../ksp-core-lib\" }",
|
|
"ksp-job-api = { path = \"../ksp-job-api\" }",
|
|
"ksp-logging-lib = { path = \"../ksp-logging-lib\" }",
|
|
"ksp-onchain-transport-lib = { path = \"../ksp-onchain-transport-lib\" }",
|
|
"ksp-store-lib = { path = \"../ksp-store-lib\", default-features = false }",
|
|
"sha2.workspace = true",
|
|
] {
|
|
assert!(manifest.contains(required), "required Backfill dependency missing: {required}");
|
|
}
|
|
for forbidden in [
|
|
"ksp-config-lib",
|
|
"ksp-interface-lib",
|
|
"ksp-program-api",
|
|
"ksp-store-api",
|
|
"ksp-store-postgres-lib",
|
|
"ksp-wallet-lib",
|
|
"solana-",
|
|
"reqwest",
|
|
"serde",
|
|
"tonic",
|
|
] {
|
|
assert!(!manifest.contains(forbidden), "forbidden Backfill dependency present: {forbidden}");
|
|
}
|
|
return;
|
|
}
|
|
|
|
#[test]
|
|
fn pre_005_production_sources_keep_transport_and_store_in_their_owned_layers() {
|
|
let sources = [
|
|
include_str!("../src/constants.rs"),
|
|
include_str!("../src/discovery.rs"),
|
|
include_str!("../src/error.rs"),
|
|
include_str!("../src/lib.rs"),
|
|
include_str!("../src/request.rs"),
|
|
];
|
|
for source in sources {
|
|
for forbidden in [
|
|
"ksp_config_lib::",
|
|
"ksp_interface_lib::",
|
|
"ksp_store_api::",
|
|
"ksp_store_postgres_lib::",
|
|
"reqwest::",
|
|
"serde_json::",
|
|
"std::env",
|
|
"tonic::",
|
|
] {
|
|
assert!(!source.contains(forbidden), "forbidden concrete Backfill path detected: {forbidden}");
|
|
}
|
|
}
|
|
let discovery = include_str!("../src/discovery.rs");
|
|
assert!(discovery.contains("get_signatures_for_address"));
|
|
assert!(!discovery.contains("execute_standard_rpc"));
|
|
assert!(!discovery.contains("retry"));
|
|
assert!(!discovery.contains("endpoint_name"));
|
|
assert!(!discovery.contains("HttpEndpoint"));
|
|
return;
|
|
}
|