// 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; }