Skip to content

Commit bec60b6

Browse files
committed
Test crates.io search error behaviour
1 parent 3669b65 commit bec60b6

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/web/releases.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2293,4 +2293,43 @@ mod tests {
22932293
Ok(())
22942294
});
22952295
}
2296+
2297+
#[test]
2298+
fn test_create_search_error_response() {
2299+
let response = create_search_error_response(
2300+
"test_query".to_string(),
2301+
"relevance".to_string(),
2302+
"Service temporarily unavailable".to_string(),
2303+
);
2304+
assert_eq!(
2305+
response.title,
2306+
"Search service is not currently available: Service temporarily unavailable"
2307+
);
2308+
assert_eq!(response.status, http::StatusCode::SERVICE_UNAVAILABLE);
2309+
assert_eq!(response.release_type, ReleaseType::Search);
2310+
}
2311+
2312+
#[test]
2313+
fn crates_io_search_returns_status_code_5xx() {
2314+
async_wrapper(|env| async move {
2315+
let mut crates_io = mockito::Server::new_async().await;
2316+
env.override_config(|config| {
2317+
config.registry_api_host = crates_io.url().parse().unwrap();
2318+
});
2319+
2320+
crates_io
2321+
.mock("GET", "/api/v1/crates")
2322+
.with_status(500)
2323+
.create_async()
2324+
.await;
2325+
2326+
let response = env
2327+
.web_app()
2328+
.await
2329+
.get("/releases/search?query=anything_goes_here")
2330+
.await?;
2331+
assert_eq!(response.status(), 503);
2332+
Ok(())
2333+
})
2334+
}
22962335
}

0 commit comments

Comments
 (0)