commit b04b893574acdd734d4a42c361ae09e627a05798
parent 34281da7f4d67aae7c6cc8508ce784c5ad8e04ed
Author: triesap <tyson@radroots.org>
Date: Tue, 7 Jul 2026 22:26:42 +0000
transport: validate proxy explicit targets locally
- Exercise shared protocol validation for direct typed proxy requests.
- Assert explicit proxy targets fail before daemon HTTP transport.
- Preserve Reticulum preview direct request coverage.
- Keep radrootsd adapter invalid-request behavior typed.
Diffstat:
1 file changed, 16 insertions(+), 0 deletions(-)
diff --git a/crates/sdk/tests/unit/adapters_radrootsd_tests.rs b/crates/sdk/tests/unit/adapters_radrootsd_tests.rs
@@ -716,6 +716,22 @@ async fn publish_signed_event_rejects_invalid_protocol_requests_before_http() {
endpoint_uri: "wss://relay.example.com".to_owned(),
preview_behavior: Some(TransportPublishPreviewBehavior::RejectDeliveryAttempts),
}]);
+ let mut explicit_proxy_target = base.clone();
+ explicit_proxy_target.target_policy =
+ TransportPublishTargetPolicy::explicit_targets(vec![TransportPublishTarget {
+ transport_kind: "proxy".to_owned(),
+ endpoint_uri: "radrootsd-proxy:publish".to_owned(),
+ preview_behavior: None,
+ }]);
+ let proxy_error = adapter
+ .publish_signed_event(explicit_proxy_target)
+ .await
+ .expect_err("explicit proxy target");
+ assert!(matches!(
+ proxy_error,
+ RadrootsdError::InvalidRequest(message)
+ if message.contains("proxy") && message.contains("daemon explicit target")
+ ));
let mut empty_idempotency = base;
empty_idempotency.idempotency_key = Some(" ".to_owned());