use wiremock::{
matchers::{method, path, path_regex},
Mock, MockServer, ResponseTemplate,
};
#[async_std::test]
async fn should_prioritize_mock_with_highest_priority() {
let mock_server = MockServer::start().await;
let exact = Mock::given(method("GET"))
.and(path("abcd"))
.respond_with(ResponseTemplate::new(200))
.with_priority(2);
mock_server.register(exact).await;
let regex = Mock::given(method("GET"))
.and(path_regex("[a-z]{4}"))
.respond_with(ResponseTemplate::new(201))
.with_priority(1);
mock_server.register(regex).await;
let should_match = surf::get(format!("{}/abcd", mock_server.uri()))
.await
.unwrap();
assert_eq!(should_match.status(), 201);
}
#[async_std::test]
async fn should_not_prioritize_mock_with_lower_priority() {
let mock_server = MockServer::start().await;
let exact = Mock::given(method("GET"))
.and(path("abcd"))
.respond_with(ResponseTemplate::new(200))
.with_priority(u8::MAX);
mock_server.register(exact).await;
let regex = Mock::given(method("GET"))
.and(path_regex("[a-z]{4}"))
.respond_with(ResponseTemplate::new(201));
mock_server.register(regex).await;
let should_match = surf::get(format!("{}/abcd", mock_server.uri()))
.await
.unwrap();
assert_eq!(should_match.status(), 201);
}
#[async_std::test]
async fn by_default_should_use_insertion_order() {
let mock_server = MockServer::start().await;
let exact = Mock::given(method("GET"))
.and(path("abcd"))
.respond_with(ResponseTemplate::new(200));
let regex = Mock::given(method("GET"))
.and(path_regex("[a-z]{4}"))
.respond_with(ResponseTemplate::new(201));
mock_server.register(exact).await;
mock_server.register(regex).await;
let should_match = surf::get(format!("{}/abcd", mock_server.uri()))
.await
.unwrap();
assert_eq!(should_match.status(), 200);
let mock_server = MockServer::start().await;
let exact = Mock::given(method("GET"))
.and(path("abcd"))
.respond_with(ResponseTemplate::new(200));
let regex = Mock::given(method("GET"))
.and(path_regex("[a-z]{4}"))
.respond_with(ResponseTemplate::new(201));
mock_server.register(regex).await;
mock_server.register(exact).await;
let should_match = surf::get(format!("{}/abcd", mock_server.uri()))
.await
.unwrap();
assert_eq!(should_match.status(), 201);
}