Skip to content

Commit 8bd6020

Browse files
authored
fix: cover uncovered lines from claim check PR (#103)
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
1 parent b9169b7 commit 8bd6020

5 files changed

Lines changed: 71 additions & 0 deletions

File tree

rsworkspace/crates/trogon-nats/src/jetstream/claim_check.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,29 @@ mod tests {
241241
let stripped = strip_claim_headers(headers);
242242
assert_eq!(stripped.get("X-Custom").unwrap().as_str(), "value");
243243
}
244+
245+
#[test]
246+
fn claim_resolve_error_display_missing_key() {
247+
let err: ClaimResolveError<String> = ClaimResolveError::MissingKey;
248+
let msg = err.to_string();
249+
assert!(msg.contains(HEADER_CLAIM_KEY));
250+
}
251+
252+
#[test]
253+
fn claim_resolve_error_display_store_failed() {
254+
let err: ClaimResolveError<String> =
255+
ClaimResolveError::StoreFailed("connection refused".to_string());
256+
let msg = err.to_string();
257+
assert!(msg.contains("connection refused"));
258+
}
259+
260+
#[test]
261+
fn claim_resolve_error_display_read_failed() {
262+
let io_err = std::io::Error::new(std::io::ErrorKind::BrokenPipe, "pipe broke");
263+
let err: ClaimResolveError<String> = ClaimResolveError::ReadFailed(io_err);
264+
let msg = err.to_string();
265+
assert!(msg.contains("pipe broke"));
266+
}
244267
}
245268

246269
#[cfg(all(test, feature = "test-support"))]

rsworkspace/crates/trogon-nats/src/jetstream/mocks.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -832,4 +832,22 @@ mod tests {
832832
vec![AckKindSnapshot::AckWith(AckKindValue::Next)]
833833
);
834834
}
835+
836+
#[test]
837+
fn mock_object_store_default() {
838+
let store = MockObjectStore::default();
839+
assert!(store.stored_objects().is_empty());
840+
}
841+
842+
#[tokio::test]
843+
async fn mock_object_store_fail_next_get() {
844+
let store = MockObjectStore::new();
845+
store.seed("key", Bytes::from("data"));
846+
store.fail_next_get();
847+
let result = ObjectStoreGet::get(&store, "key").await;
848+
assert!(result.is_err());
849+
850+
let result = ObjectStoreGet::get(&store, "key").await;
851+
assert!(result.is_ok());
852+
}
835853
}

rsworkspace/crates/trogon-nats/src/jetstream/publish.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,11 @@ mod tests {
102102
let outcome: PublishOutcome<String> = PublishOutcome::Published;
103103
outcome.log_on_error("test");
104104
}
105+
106+
#[test]
107+
fn log_on_error_logs_store_failed() {
108+
let err: Box<dyn std::error::Error + Send + Sync> = "store down".into();
109+
let outcome: PublishOutcome<String> = PublishOutcome::StoreFailed(err);
110+
outcome.log_on_error("test");
111+
}
105112
}

rsworkspace/crates/trogon-source-slack/src/server.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1431,4 +1431,22 @@ mod tests {
14311431
assert_eq!(resp.status(), StatusCode::BAD_REQUEST);
14321432
assert_unroutable(&publisher, "missing_interaction_type");
14331433
}
1434+
1435+
#[tokio::test]
1436+
async fn router_with_system_clock_responds_to_health() {
1437+
let publisher = MockJetStreamPublisher::new();
1438+
let app = router(wrap_publisher(publisher), &test_config());
1439+
1440+
let resp = app
1441+
.oneshot(
1442+
Request::builder()
1443+
.uri("/health")
1444+
.body(Body::empty())
1445+
.unwrap(),
1446+
)
1447+
.await
1448+
.unwrap();
1449+
1450+
assert_eq!(resp.status(), StatusCode::OK);
1451+
}
14341452
}

rsworkspace/crates/trogon-std/src/http.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,9 @@ mod tests {
3333
let size = HttpBodySizeMax::new(ByteSize::mib(1)).unwrap();
3434
assert_eq!(size.as_usize(), 1024 * 1024);
3535
}
36+
37+
#[test]
38+
fn new_zero_returns_none() {
39+
assert!(HttpBodySizeMax::new(ByteSize::b(0)).is_none());
40+
}
3641
}

0 commit comments

Comments
 (0)