Files
khadhroony-solana-project/crates/ksp-app-store-desk/tests/dependency_boundary.rs

36 lines
1.4 KiB
Rust

// file: crates/ksp-app-store-desk/tests/dependency_boundary.rs
// version: 2
//! Dependency-boundary tests for the Store Desk scaffold.
#[test]
fn pre_002_manifest_keeps_store_and_transport_runtime_dependencies_out_of_scaffold() {
let manifest = include_str!("../Cargo.toml");
for forbidden in [
"ksp-store-lib",
"ksp-store-api",
"ksp-store-postgres-lib",
"ksp-onchain-transport-lib",
"ksp-offchain-transport-lib",
"ksp-job-api",
"ksp-job-backfill-lib",
"reqwest",
"tokio-postgres",
"deadpool-postgres",
] {
assert!(!manifest.contains(forbidden), "forbidden pre.002 dependency present: {forbidden}");
}
for required in ["ksp-config-lib", "ksp-core-lib", "ksp-logging-lib", "tauri-plugin-tracing"] {
assert!(manifest.contains(required), "required scaffold dependency missing: {required}");
}
}
#[test]
fn pre_002_sources_expose_no_sql_or_physical_store_escape_hatch() {
let sources =
[include_str!("../src/app_state.rs"), include_str!("../src/bootstrap.rs"), include_str!("../src/tauri.rs"), include_str!("../src/lib.rs")].join("\n");
for forbidden in ["Store::open", "tokio_postgres", "deadpool_postgres", "SELECT ", "INSERT ", "UPDATE ", "DELETE ", "ksp_store_api", "ksp_store_postgres"] {
assert!(!sources.contains(forbidden), "pre.002 scaffold leaked forbidden Store/runtime surface: {forbidden}");
}
}