sdk

Radroots SDK and bindings
git clone https://radroots.dev/git/sdk.git
Log | Files | Refs | README

commit 8c402daa4c6d4dd34b0f634fc59280b7818613fa
parent 755fab472df86ad5f45e398fe0dd590ec23dd0e4
Author: triesap <tyson@radroots.org>
Date:   Tue, 30 Jun 2026 11:10:06 +0000

test: ingest status noise events

Diffstat:
Mcrates/sdk/tests/orders_runtime.rs | 50++++++++++++++++++++++++++++++++++++++++++++++----
Mcrates/sdk/tests/source_boundary.rs | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+), 4 deletions(-)

diff --git a/crates/sdk/tests/orders_runtime.rs b/crates/sdk/tests/orders_runtime.rs @@ -16,7 +16,7 @@ use radroots_events::{ RadrootsEventId, RadrootsListingAddress, RadrootsOrderId, RadrootsOrderRevisionId, RadrootsPublicKey, }, - kinds::{KIND_LISTING, KIND_ORDER_DECISION, KIND_ORDER_REQUEST}, + kinds::{KIND_LISTING, KIND_ORDER_DECISION, KIND_ORDER_REQUEST, KIND_POST}, order::{ RadrootsOrderDecision, RadrootsOrderDecisionOutcome, RadrootsOrderEconomicItem, RadrootsOrderEconomicLine, RadrootsOrderEconomics, RadrootsOrderInventoryCommitment, @@ -2246,6 +2246,33 @@ async fn insert_perf_trade_background_events(store: &RadrootsEventStore, base: i } } +async fn ingest_status_noise_events( + store: &RadrootsEventStore, + non_trade_count: i64, + trade_count: i64, +) { + for index in 0..non_trade_count { + store + .ingest_event(RadrootsEventIngest::new( + signed_status_noise_post_event(index, 32_000 + index as u32), + 1_700_200_000_000 + index, + )) + .await + .expect("non-trade status noise ingest"); + } + + for index in 0..trade_count { + let order_id = format!("status-noise-background-{index:03}"); + store + .ingest_event(RadrootsEventIngest::new( + signed_order_request_event(&order_id, 33_000 + index as u32), + 1_700_200_100_000 + index, + )) + .await + .expect("trade status noise ingest"); + } +} + fn perf_sig() -> String { "0".repeat(128) } @@ -2322,6 +2349,18 @@ fn signed_order_decision_event( signed_event(SELLER_SECRET_KEY_HEX, created_at, draft) } +fn signed_status_noise_post_event(index: i64, created_at: u32) -> RadrootsNostrEvent { + signed_event( + SELLER_SECRET_KEY_HEX, + created_at, + WireEventParts { + kind: KIND_POST, + content: format!("local status noise {index}"), + tags: Vec::new(), + }, + ) +} + fn signed_non_order_event(created_at: u32) -> RadrootsNostrEvent { signed_event( SELLER_SECRET_KEY_HEX, @@ -4045,9 +4084,12 @@ async fn order_status_returns_not_found_for_missing_local_order() { #[tokio::test] async fn order_status_query_uses_indexed_order_id_under_background_event_noise() { let (_tempdir, sdk, store) = directory_sdk_and_store().await; - insert_perf_non_trade_events(&store, 30_000_000, STATUS_NOISE_NON_TRADE_EVENTS).await; - insert_perf_trade_background_events(&store, 40_000_000, STATUS_NOISE_TRADE_BACKGROUND_EVENTS) - .await; + ingest_status_noise_events( + &store, + STATUS_NOISE_NON_TRADE_EVENTS, + STATUS_NOISE_TRADE_BACKGROUND_EVENTS, + ) + .await; let request_event = signed_order_request_event("order-status-noise-active", 31_000); let request_event_id = request_event.id.clone(); diff --git a/crates/sdk/tests/source_boundary.rs b/crates/sdk/tests/source_boundary.rs @@ -423,6 +423,47 @@ fn migrated_runtime_tests_stay_on_product_runtime_boundary() { } #[test] +fn default_status_noise_test_uses_production_ingest_not_perf_sql_ballast() { + let orders_runtime_tests = read_source( + Path::new(env!("CARGO_MANIFEST_DIR")) + .join("tests/orders_runtime.rs") + .as_path(), + ); + let default_status_noise_test = function_source( + orders_runtime_tests.as_str(), + "order_status_query_uses_indexed_order_id_under_background_event_noise", + ); + let manual_perf_test = function_source( + orders_runtime_tests.as_str(), + "manual_local_status_perf_gate_measures_100k_events", + ); + + assert!( + default_status_noise_test.contains("ingest_status_noise_events("), + "default status noise test must use production-equivalent event-store ingest" + ); + for forbidden in [ + "insert_perf_non_trade_events(", + "insert_perf_trade_background_events(", + "sqlx::query(", + ] { + assert!( + !default_status_noise_test.contains(forbidden), + "default status noise test must not use manual SQL ballast helper `{forbidden}`" + ); + } + for required in [ + "insert_perf_non_trade_events(", + "insert_perf_trade_background_events(", + ] { + assert!( + manual_perf_test.contains(required), + "manual performance gate must retain explicit SQL ballast helper `{required}`" + ); + } +} + +#[test] fn agreement_order_runtime_excludes_post_agreement_surfaces() { let lib_source = read_source( Path::new(env!("CARGO_MANIFEST_DIR")) @@ -838,6 +879,18 @@ fn contains_forbidden_concept(source: &str, pattern: &str) -> bool { }) } +fn function_source<'source>(source: &'source str, function_name: &str) -> &'source str { + let signature = format!("async fn {function_name}"); + let start = source + .find(signature.as_str()) + .unwrap_or_else(|| panic!("failed to find test function `{function_name}`")); + let source_after_start = &source[start..]; + let end = source_after_start + .find("\n#[tokio::test]") + .unwrap_or(source_after_start.len()); + &source_after_start[..end] +} + fn is_rust_identifier_character(character: char) -> bool { character == '_' || character.is_ascii_alphanumeric() }