37 lines
857 B
Rust
37 lines
857 B
Rust
|
|
use reqwest::Client;
|
||
|
|
use wiremock::matchers::any;
|
||
|
|
use wiremock::{Mock, MockServer, ResponseTemplate};
|
||
|
|
|
||
|
|
async fn test_body() {
|
||
|
|
// Arrange
|
||
|
|
let mock_server = MockServer::start().await;
|
||
|
|
|
||
|
|
let response = ResponseTemplate::new(200).set_delay(std::time::Duration::from_secs(60));
|
||
|
|
Mock::given(any())
|
||
|
|
.respond_with(response)
|
||
|
|
.mount(&mock_server)
|
||
|
|
.await;
|
||
|
|
|
||
|
|
// Act
|
||
|
|
let outcome = Client::builder()
|
||
|
|
.timeout(std::time::Duration::from_secs(1))
|
||
|
|
.build()
|
||
|
|
.unwrap()
|
||
|
|
.get(&mock_server.uri())
|
||
|
|
.send()
|
||
|
|
.await;
|
||
|
|
|
||
|
|
// Assert
|
||
|
|
assert!(outcome.is_err());
|
||
|
|
}
|
||
|
|
|
||
|
|
#[actix_rt::test]
|
||
|
|
async fn request_times_out_if_the_server_takes_too_long_with_actix() {
|
||
|
|
test_body().await
|
||
|
|
}
|
||
|
|
|
||
|
|
#[tokio::test]
|
||
|
|
async fn request_times_out_if_the_server_takes_too_long_with_tokio() {
|
||
|
|
test_body().await
|
||
|
|
}
|