commit 0242454c74964a329ff2a2c304d6364f1d0a1675
parent 3d40e54f887c2916b84463f914ac8f65d30da79d
Author: triesap <tyson@radroots.org>
Date: Tue, 14 Jul 2026 19:18:41 +0000
tests: align proxy publish protocol fixtures
- update radrootsd proxy test servers for raw_event_json requests
- assert proxy default-profile enqueue remains ready before push
- cover fallible event envelope construction at evidence boundaries
- keep downstream tests on current transport publish contracts
Diffstat:
3 files changed, 57 insertions(+), 9 deletions(-)
diff --git a/crates/sdk/tests/sync_runtime.rs b/crates/sdk/tests/sync_runtime.rs
@@ -182,7 +182,10 @@ fn write_transport_publish_response(
job_number: usize,
) {
let body_json: serde_json::Value = serde_json::from_str(body).expect("body json");
- let event = &body_json["params"]["event"];
+ let raw_event_json = body_json["params"]["raw_event_json"]
+ .as_str()
+ .expect("raw event json");
+ let event: serde_json::Value = serde_json::from_str(raw_event_json).expect("event json");
let (
status,
terminal,
@@ -1746,6 +1749,35 @@ async fn product_push_outbox_uses_radrootsd_proxy_transport_with_daemon_resolved
)
.await
.expect("enqueue");
+ let pre_push_outbox =
+ RadrootsOutbox::open_file(&sdk.storage_paths().expect("paths").outbox_path)
+ .await
+ .expect("pre-push outbox");
+ let pre_push_stored = pre_push_outbox
+ .get_event(enqueue.outbox_event_id)
+ .await
+ .expect("pre-push stored")
+ .expect("pre-push stored");
+ assert_eq!(pre_push_stored.state, RadrootsOutboxEventState::Signed);
+ let pre_push_targets = pre_push_outbox
+ .delivery_targets(enqueue.outbox_event_id)
+ .await
+ .expect("pre-push targets");
+ assert_eq!(pre_push_targets.len(), 1);
+ assert_eq!(
+ pre_push_targets[0].transport_kind,
+ radroots_sdk::RadrootsTransportKind::Proxy
+ );
+ assert_eq!(
+ pre_push_targets[0].status,
+ RadrootsOutboxDeliveryTargetStatus::Pending
+ );
+ let pre_push_status = sdk
+ .sync()
+ .status(SyncStatusRequest::new())
+ .await
+ .expect("pre-push status");
+ assert_eq!(pre_push_status.outbox.ready_signed_events, 1);
let receipt = sdk
.sync()
@@ -1754,12 +1786,12 @@ async fn product_push_outbox_uses_radrootsd_proxy_transport_with_daemon_resolved
.expect("transport publish push");
assert_eq!(receipt.attempted_events, 1);
- assert_eq!(receipt.published_events, 1);
assert_eq!(receipt.events[0].outbox_event_id, enqueue.outbox_event_id);
assert_eq!(
receipt.events[0].final_state,
PushOutboxEventState::Published
);
+ assert_eq!(receipt.published_events, 1);
assert_eq!(receipt.events[0].targets.len(), 1);
assert_eq!(
receipt.events[0].targets[0].endpoint_uri,
@@ -1783,7 +1815,11 @@ async fn product_push_outbox_uses_radrootsd_proxy_transport_with_daemon_resolved
"request_then_author_write_then_daemon_default"
);
assert_eq!(body["params"]["delivery_policy"]["mode"], "all");
- assert!(body["params"]["event"]["sig"].as_str().is_some());
+ let raw_event_json = body["params"]["raw_event_json"]
+ .as_str()
+ .expect("raw event json");
+ let event: serde_json::Value = serde_json::from_str(raw_event_json).expect("event json");
+ assert!(event["sig"].as_str().is_some());
assert!(!recorded.body.contains("bridge."));
assert!(!recorded.body.contains("signer_session_id"));
diff --git a/crates/sdk/tests/trade_product_publish_runtime.rs b/crates/sdk/tests/trade_product_publish_runtime.rs
@@ -96,7 +96,10 @@ fn read_transport_publish_request_body(stream: &mut TcpStream) -> String {
fn write_transport_publish_accept_response(stream: &mut TcpStream, body: &str) {
let body_json: serde_json::Value = serde_json::from_str(body).expect("body json");
- let event = &body_json["params"]["event"];
+ let raw_event_json = body_json["params"]["raw_event_json"]
+ .as_str()
+ .expect("raw event json");
+ let event: serde_json::Value = serde_json::from_str(raw_event_json).expect("event json");
let response_body = serde_json::json!({
"jsonrpc": "2.0",
"id": body_json["id"],
diff --git a/crates/sdk/tests/unit/orders_runtime_tests.rs b/crates/sdk/tests/unit/orders_runtime_tests.rs
@@ -2039,12 +2039,21 @@ fn evidence_reference_helpers_reject_invalid_ids_and_payload_mismatches() {
}
#[test]
-fn parse_order_evidence_reports_invalid_ids_unsupported_kinds_and_decode_errors() {
+fn parse_order_evidence_reports_constructor_id_unsupported_kind_and_decode_errors() {
+ let invalid_id = RadrootsEventEnvelope::new(RadrootsEventEnvelopeParts {
+ id: "not-hex".to_owned(),
+ author: hex_64('c'),
+ created_at: 1_700_000_000,
+ kind: KIND_ORDER_REQUEST,
+ tags: Vec::new(),
+ content: "{}".to_owned(),
+ sig: hex_128('f'),
+ })
+ .expect_err("invalid id");
assert!(
- invalid_request_message(parsed_order_evidence_error(parse_order_evidence(
- &nostr_event("not-hex".to_owned(), KIND_ORDER_REQUEST,)
- )))
- .contains("order evidence event id is invalid")
+ invalid_id
+ .to_string()
+ .contains("event envelope id is invalid")
);
assert!(
invalid_request_message(parsed_order_evidence_error(parse_order_evidence(