v0.3.15-pre.009
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-app-raw-transaction-ingest-desk/tests/desktop_contract.rs
|
||||
// version: 5
|
||||
// version: 6
|
||||
|
||||
//! Desktop scaffold contract canaries for Raw Transaction Ingest Desk.
|
||||
|
||||
@@ -186,17 +186,18 @@ fn pre_007_start_preflight_is_backend_owned_generation_bound_and_does_not_launch
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_008_start_stop_commands_and_frontend_controls_are_mono_route_and_backend_owned() {
|
||||
fn pre_009_start_stop_controls_are_multi_route_targeted_and_backend_owned() {
|
||||
let tauri = read_text(app_root().join("src/tauri.rs").as_path());
|
||||
for required in ["start_route", "stop_route", "launch.monitor().await"] {
|
||||
assert!(tauri.contains(required), "missing pre.008 Tauri runtime marker {required}");
|
||||
for required in ["start_route", "stop_route", "RawIngestRouteStopRequestDto", "launch.monitor().await"] {
|
||||
assert!(tauri.contains(required), "missing pre.009 Tauri runtime marker {required}");
|
||||
}
|
||||
let html = read_text(app_root().join("frontend/main.html").as_path());
|
||||
for required in ["id=\"routeCommitment\"", "id=\"routeRuntimeState\"", "id=\"routeRuntimeIdentity\"", "id=\"stopRoute\""] {
|
||||
assert!(html.contains(required), "missing pre.008 frontend runtime marker {required}");
|
||||
for required in ["id=\"routeCommitment\"", "id=\"routeRuntimeState\"", "id=\"routeRuntimeIdentity\"", "Runtime multi-route / Store partagé"] {
|
||||
assert!(html.contains(required), "missing pre.009 frontend runtime marker {required}");
|
||||
}
|
||||
assert!(!html.contains("id=\"stopRoute\""));
|
||||
let main = read_text(app_root().join("frontend/ts/main.ts").as_path());
|
||||
for required in ["mono-route Start requested", "mono-route Stop requested", "start_route", "stop_route"] {
|
||||
assert!(main.contains(required), "missing pre.008 frontend control marker {required}");
|
||||
for required in ["activeRuntimes", "targeted route Stop requested", "start_route", "stop_route", "RawIngestRouteStopRequestDto"] {
|
||||
assert!(main.contains(required), "missing pre.009 frontend control marker {required}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-app-raw-transaction-ingest-desk/tests/release_completeness.rs
|
||||
// version: 7
|
||||
// version: 8
|
||||
|
||||
//! Release-completeness canaries for Raw Transaction Ingest Desk Start-resource reconstruction.
|
||||
|
||||
@@ -92,23 +92,35 @@ fn pre_007_start_revalidation_reuses_inventory_and_requires_profile_network_iden
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_008_mono_route_slot_blocks_second_start_until_terminal_store_cleanup() {
|
||||
fn pre_009_multi_route_runtime_keeps_independent_workers_on_one_same_network_store() {
|
||||
let runtime = read_text(app_root().join("src/route_runtime.rs").as_path());
|
||||
for required in [
|
||||
"RouteRuntimeSlot::Starting",
|
||||
"RouteRuntimeSlot::Active",
|
||||
"ERROR_CODE_ROUTE_RUNTIME_ACTIVE",
|
||||
"inner.last_terminal = std::option::Option::None",
|
||||
"std::option::Option::Some(terminal) => return std::result::Result::Ok(terminal.clone())",
|
||||
"routes: std::vec::Vec<RouteRuntimeSlot>",
|
||||
"store: std::option::Option<std::sync::Arc<ksp_store_lib::Store>>",
|
||||
"ERROR_CODE_ROUTE_RUNTIME_NETWORK_MISMATCH",
|
||||
"already owns one Worker for the selected logical route",
|
||||
"shared_store(prepared.network.as_str())",
|
||||
"self.runtime_state.finish(self.token, terminal)",
|
||||
"Arc::try_unwrap",
|
||||
] {
|
||||
assert!(runtime.contains(required), "missing mono-route ownership marker {required}");
|
||||
assert!(runtime.contains(required), "missing pre.009 shared-Store marker {required}");
|
||||
}
|
||||
assert!(!runtime.contains("RouteRuntimeSlot::Idle"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_008_fix_004_yellowstone_hydration_uses_its_declared_transport_source_not_base_transport() {
|
||||
fn pre_009_targeted_stop_is_route_scoped_and_late_terminal_safe() {
|
||||
let dto = read_text(app_root().join("src/dto_route.rs").as_path());
|
||||
assert!(dto.contains("RawIngestRouteStopRequestDto"));
|
||||
let runtime = read_text(app_root().join("src/route_runtime.rs").as_path());
|
||||
assert!(runtime.contains("stop_and_wait(&self, request: &crate::RawIngestRouteStopRequestDto)"));
|
||||
assert!(runtime.contains("terminal.profile_id == request.profile_id && terminal.route_id == request.route_id"));
|
||||
let tauri = read_text(app_root().join("src/tauri.rs").as_path());
|
||||
assert!(tauri.contains("request: crate::RawIngestRouteStopRequestDto"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_009_yellowstone_uses_block_subscription_and_one_get_block_path_instead_of_per_transaction_hydration() {
|
||||
let route_start = read_text(app_root().join("src/route_start.rs").as_path());
|
||||
let start = route_start.find("fn prepare_yellowstone(");
|
||||
let end = route_start.find("fn prepare_http_polling(");
|
||||
@@ -118,9 +130,14 @@ fn pre_008_fix_004_yellowstone_hydration_uses_its_declared_transport_source_not_
|
||||
(std::option::Option::Some(start), std::option::Option::Some(end)) if start < end => &route_start[start..end],
|
||||
_ => "",
|
||||
};
|
||||
assert!(yellowstone.contains("resolve_optional_transport"));
|
||||
assert!(yellowstone.contains("COMPOSITE_COMPONENT_ID_TRANSPORT_YELLOWSTONE"));
|
||||
assert!(yellowstone.contains("single_http_role(transport.http_settings(), network, &[\"getTransaction\"])"));
|
||||
assert!(yellowstone.contains("HttpTransportPool::new(transport.http_settings().clone())"));
|
||||
assert!(!yellowstone.contains("base_transport"));
|
||||
assert!(yellowstone.contains("insert_block_filter"));
|
||||
assert!(yellowstone.contains("set_include_transactions(std::option::Option::Some(false))"));
|
||||
assert!(yellowstone.contains("single_http_role(transport.http_settings(), network, &[\"getBlock\"])"));
|
||||
assert!(!yellowstone.contains("insert_transaction_filter"));
|
||||
let workspace = read_text(app_root().join("../ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs").as_path());
|
||||
assert!(workspace.contains("RawTransactionIngestYellowstoneMode::BlockHydration"));
|
||||
assert!(workspace.contains("fetch_yellowstone_block_ingresses"));
|
||||
assert!(workspace.contains("get_block_observed"));
|
||||
assert!(workspace.contains("RAW_TRANSACTION_INGEST_YELLOWSTONE_BLOCK_RECONCILIATION_ATTEMPTS"));
|
||||
assert!(workspace.contains("stop_receiver.changed()"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user