v0.3.8-pre.006
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
// file: crates/ksp-app-store-desk/tests/dependency_boundary.rs
|
||||
// version: 2
|
||||
// version: 3
|
||||
|
||||
//! Dependency-boundary tests for the Store Desk scaffold.
|
||||
//! Dependency-boundary tests for the Store Desk application.
|
||||
|
||||
#[test]
|
||||
fn pre_002_manifest_keeps_store_and_transport_runtime_dependencies_out_of_scaffold() {
|
||||
fn pre_006_manifest_uses_store_facade_without_physical_or_transport_dependencies() {
|
||||
let manifest = include_str!("../Cargo.toml");
|
||||
for forbidden in [
|
||||
"ksp-store-lib",
|
||||
"ksp-store-api",
|
||||
"ksp-store-postgres-lib",
|
||||
"ksp-onchain-transport-lib",
|
||||
@@ -18,18 +17,26 @@ fn pre_002_manifest_keeps_store_and_transport_runtime_dependencies_out_of_scaffo
|
||||
"tokio-postgres",
|
||||
"deadpool-postgres",
|
||||
] {
|
||||
assert!(!manifest.contains(forbidden), "forbidden pre.002 dependency present: {forbidden}");
|
||||
assert!(!manifest.contains(forbidden), "forbidden Store Desk 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}");
|
||||
for required in ["ksp-config-lib", "ksp-core-lib", "ksp-logging-lib", "ksp-store-lib", "tauri-plugin-tracing"] {
|
||||
assert!(manifest.contains(required), "required Store Desk 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}");
|
||||
fn pre_006_store_open_is_owned_by_store_runtime_and_never_escapes_to_physical_sql() {
|
||||
let bootstrap = include_str!("../src/bootstrap.rs");
|
||||
let store_runtime = include_str!("../src/store_runtime.rs");
|
||||
let app_state = include_str!("../src/app_state.rs");
|
||||
let tauri = include_str!("../src/tauri.rs");
|
||||
assert!(!bootstrap.contains("Store::open"));
|
||||
assert!(store_runtime.contains("ksp_store_lib::Store::open"));
|
||||
assert!(store_runtime.contains("store.runtime_snapshot()"));
|
||||
assert!(store_runtime.contains("store.health().await"));
|
||||
assert!(store_runtime.contains("store.close().await"));
|
||||
let sources = [bootstrap, store_runtime, app_state, tauri].join("\n");
|
||||
for forbidden in ["tokio_postgres", "deadpool_postgres", "SELECT ", "INSERT ", "UPDATE ", "DELETE ", "ksp_store_api", "ksp_store_postgres"] {
|
||||
assert!(!sources.contains(forbidden), "Store Desk leaked forbidden physical Store surface: {forbidden}");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user