From 76d4d1b2c7701fb976f7db346e077cb35838cb4d Mon Sep 17 00:00:00 2001 From: Yordis Prieto Date: Mon, 6 Apr 2026 16:31:36 -0400 Subject: [PATCH] test: cover uncovered lines from claim check PR Signed-off-by: Yordis Prieto --- .../trogon-nats/src/jetstream/claim_check.rs | 23 +++++++++++++++++++ .../crates/trogon-nats/src/jetstream/mocks.rs | 18 +++++++++++++++ .../trogon-nats/src/jetstream/publish.rs | 7 ++++++ .../crates/trogon-source-slack/src/server.rs | 18 +++++++++++++++ rsworkspace/crates/trogon-std/src/http.rs | 5 ++++ 5 files changed, 71 insertions(+) diff --git a/rsworkspace/crates/trogon-nats/src/jetstream/claim_check.rs b/rsworkspace/crates/trogon-nats/src/jetstream/claim_check.rs index 6795036ba..37008d17f 100644 --- a/rsworkspace/crates/trogon-nats/src/jetstream/claim_check.rs +++ b/rsworkspace/crates/trogon-nats/src/jetstream/claim_check.rs @@ -241,6 +241,29 @@ mod tests { let stripped = strip_claim_headers(headers); assert_eq!(stripped.get("X-Custom").unwrap().as_str(), "value"); } + + #[test] + fn claim_resolve_error_display_missing_key() { + let err: ClaimResolveError = ClaimResolveError::MissingKey; + let msg = err.to_string(); + assert!(msg.contains(HEADER_CLAIM_KEY)); + } + + #[test] + fn claim_resolve_error_display_store_failed() { + let err: ClaimResolveError = + ClaimResolveError::StoreFailed("connection refused".to_string()); + let msg = err.to_string(); + assert!(msg.contains("connection refused")); + } + + #[test] + fn claim_resolve_error_display_read_failed() { + let io_err = std::io::Error::new(std::io::ErrorKind::BrokenPipe, "pipe broke"); + let err: ClaimResolveError = ClaimResolveError::ReadFailed(io_err); + let msg = err.to_string(); + assert!(msg.contains("pipe broke")); + } } #[cfg(all(test, feature = "test-support"))] diff --git a/rsworkspace/crates/trogon-nats/src/jetstream/mocks.rs b/rsworkspace/crates/trogon-nats/src/jetstream/mocks.rs index a84012030..0076cde96 100644 --- a/rsworkspace/crates/trogon-nats/src/jetstream/mocks.rs +++ b/rsworkspace/crates/trogon-nats/src/jetstream/mocks.rs @@ -832,4 +832,22 @@ mod tests { vec![AckKindSnapshot::AckWith(AckKindValue::Next)] ); } + + #[test] + fn mock_object_store_default() { + let store = MockObjectStore::default(); + assert!(store.stored_objects().is_empty()); + } + + #[tokio::test] + async fn mock_object_store_fail_next_get() { + let store = MockObjectStore::new(); + store.seed("key", Bytes::from("data")); + store.fail_next_get(); + let result = ObjectStoreGet::get(&store, "key").await; + assert!(result.is_err()); + + let result = ObjectStoreGet::get(&store, "key").await; + assert!(result.is_ok()); + } } diff --git a/rsworkspace/crates/trogon-nats/src/jetstream/publish.rs b/rsworkspace/crates/trogon-nats/src/jetstream/publish.rs index 46fec6dd8..e38f2adbc 100644 --- a/rsworkspace/crates/trogon-nats/src/jetstream/publish.rs +++ b/rsworkspace/crates/trogon-nats/src/jetstream/publish.rs @@ -102,4 +102,11 @@ mod tests { let outcome: PublishOutcome = PublishOutcome::Published; outcome.log_on_error("test"); } + + #[test] + fn log_on_error_logs_store_failed() { + let err: Box = "store down".into(); + let outcome: PublishOutcome = PublishOutcome::StoreFailed(err); + outcome.log_on_error("test"); + } } diff --git a/rsworkspace/crates/trogon-source-slack/src/server.rs b/rsworkspace/crates/trogon-source-slack/src/server.rs index 8562f58fc..6efc6c949 100644 --- a/rsworkspace/crates/trogon-source-slack/src/server.rs +++ b/rsworkspace/crates/trogon-source-slack/src/server.rs @@ -1431,4 +1431,22 @@ mod tests { assert_eq!(resp.status(), StatusCode::BAD_REQUEST); assert_unroutable(&publisher, "missing_interaction_type"); } + + #[tokio::test] + async fn router_with_system_clock_responds_to_health() { + let publisher = MockJetStreamPublisher::new(); + let app = router(wrap_publisher(publisher), &test_config()); + + let resp = app + .oneshot( + Request::builder() + .uri("/health") + .body(Body::empty()) + .unwrap(), + ) + .await + .unwrap(); + + assert_eq!(resp.status(), StatusCode::OK); + } } diff --git a/rsworkspace/crates/trogon-std/src/http.rs b/rsworkspace/crates/trogon-std/src/http.rs index cfca200f3..6ad478ebb 100644 --- a/rsworkspace/crates/trogon-std/src/http.rs +++ b/rsworkspace/crates/trogon-std/src/http.rs @@ -33,4 +33,9 @@ mod tests { let size = HttpBodySizeMax::new(ByteSize::mib(1)).unwrap(); assert_eq!(size.as_usize(), 1024 * 1024); } + + #[test] + fn new_zero_returns_none() { + assert!(HttpBodySizeMax::new(ByteSize::b(0)).is_none()); + } }