mithril_aggregator_client/test/
mod.rs1#[cfg(test)]
2use httpmock::MockServer;
3
4#[cfg(test)]
5use crate::AggregatorHttpClient;
6
7#[cfg(test)]
8mithril_common::define_test_logger!();
9
10#[cfg(test)]
11pub(crate) fn setup_server_and_client() -> (MockServer, AggregatorHttpClient) {
12 let server = MockServer::start();
13 let client = AggregatorHttpClient::builder(server.base_url())
14 .with_logger(TestLogger::stdout())
15 .build()
16 .unwrap();
17
18 (server, client)
19}
20
21#[cfg(test)]
22macro_rules! assert_error_matches {
23 ($error:expr, $error_type:pat) => {
24 assert!(
25 matches!($error, $error_type),
26 "Expected {} error, got '{:?}'.",
27 stringify!($error_type),
28 $error
29 );
30 };
31}
32#[cfg(test)]
33pub(crate) use assert_error_matches;
34
35#[macro_export]
39macro_rules! test_http_compression_is_enabled {
40 () => {
41 #[tokio::test]
42 async fn test_http_compression_is_enabled_and_send_accept_encoding_header_with_correct_values() {
43 let server = httpmock::MockServer::start();
44 server.mock(|when, then| {
45 when.is_true(|req| {
46 let headers = req.headers();
47 let accept_encoding_header = headers
48 .get("accept-encoding")
49 .expect("Accept-Encoding header not found");
50
51 ["gzip", "br", "deflate", "zstd"].iter().all(|&encoding| {
52 accept_encoding_header.to_str().is_ok_and(|h| h.contains(encoding))
53 })
54 });
55
56 then.status(200).body("[]");
57 });
58
59 let client = $crate::AggregatorHttpClient::builder(server.base_url()).build().unwrap();
60 client
61 .send($crate::query::GetCertificatesListQuery::latest())
62 .await
63 .expect("GET request should succeed with Accept-Encoding header");
64 }
65 };
66}