From 23f350b6b8100d5a0e3b0bd474059d693b4f35b9 Mon Sep 17 00:00:00 2001
From: Eduardo Trujillo <ed@chromabits.com>
Date: Tue, 15 Nov 2022 18:29:14 -0800
Subject: [PATCH] refactor: Run clippy on tests too

---
 .gitlab-ci.yml            |  2 +-
 src/config.rs             |  2 +-
 src/files/mod.rs          | 81 ++++++++++++++++++++-------------------
 src/files/path_context.rs | 73 +++++++++++++----------------------
 4 files changed, 70 insertions(+), 88 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f80f927..a5d077a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -66,7 +66,7 @@ rust-nightly-clippy:
       - target/
   <<: *rust_template
   script:
-    - cargo clippy --all --verbose -- -D warnings
+    - cargo clippy --all --tests --verbose -- -D warnings
 
 rust-nightly-docker:
   stage: image
diff --git a/src/config.rs b/src/config.rs
index d1ed2c6..ef5f1fa 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -279,7 +279,7 @@ mod tests {
 
   #[test]
   fn test_from_file() {
-    let config: Config = from_file(&Path::new("config.sample.toml"), None).unwrap();
+    let config: Config = from_file(Path::new("config.sample.toml"), None).unwrap();
 
     assert_eq!(
       config,
diff --git a/src/files/mod.rs b/src/files/mod.rs
index 026d17d..e426a3f 100644
--- a/src/files/mod.rs
+++ b/src/files/mod.rs
@@ -296,7 +296,7 @@ mod tests {
     let root_path_context = Arc::new((&server_config).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().service(Files::new(
+    let srv = test::init_service(App::new().service(Files::new(
       "/",
       serve_dir("."),
       root_path_context,
@@ -305,7 +305,7 @@ mod tests {
     .await;
 
     let request = TestRequest::get().uri("/").to_request();
-    let response = test::call_service(&mut srv, request).await;
+    let response = test::call_service(&srv, request).await;
     assert_eq!(response.status(), StatusCode::OK);
 
     let content_disposition = response
@@ -320,16 +320,17 @@ mod tests {
 
   #[actix_rt::test]
   async fn test_named_file_ranges_status_code() {
-    let mut server_config = ServerConfig::default();
-
-    server_config.index_strategy = Some(IndexStrategyConfig::IndexFiles {
-      filenames: ["Cargo.toml".to_owned()].iter().cloned().collect(),
-    });
+    let server_config = ServerConfig {
+      index_strategy: Some(IndexStrategyConfig::IndexFiles {
+        filenames: ["Cargo.toml".to_owned()].iter().cloned().collect(),
+      }),
+      ..ServerConfig::default()
+    };
 
     let root_path_context = Arc::new((&server_config).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().service(Files::new(
+    let srv = test::init_service(App::new().service(Files::new(
       "/test",
       serve_dir("."),
       root_path_context,
@@ -342,7 +343,7 @@ mod tests {
       .uri("/t%65st/Cargo.toml")
       .append_header((header::RANGE, "bytes=10-20"))
       .to_request();
-    let response = test::call_service(&mut srv, request).await;
+    let response = test::call_service(&srv, request).await;
     assert_eq!(response.status(), StatusCode::PARTIAL_CONTENT);
 
     // Invalid range header
@@ -350,7 +351,7 @@ mod tests {
       .uri("/t%65st/Cargo.toml")
       .append_header((header::RANGE, "bytes=1-0"))
       .to_request();
-    let response = test::call_service(&mut srv, request).await;
+    let response = test::call_service(&srv, request).await;
 
     assert_eq!(response.status(), StatusCode::RANGE_NOT_SATISFIABLE);
   }
@@ -468,16 +469,17 @@ mod tests {
 
   #[actix_rt::test]
   async fn test_static_files_with_spaces() {
-    let mut server_config = ServerConfig::default();
-
-    server_config.index_strategy = Some(IndexStrategyConfig::IndexFiles {
-      filenames: ["Cargo.toml".to_owned()].iter().cloned().collect(),
-    });
+    let server_config = ServerConfig {
+      index_strategy: Some(IndexStrategyConfig::IndexFiles {
+        filenames: ["Cargo.toml".to_owned()].iter().cloned().collect(),
+      }),
+      ..ServerConfig::default()
+    };
 
     let root_path_context = Arc::new((&server_config).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().service(Files::new(
+    let srv = test::init_service(App::new().service(Files::new(
       "/",
       serve_dir("."),
       root_path_context,
@@ -487,7 +489,7 @@ mod tests {
     let request = TestRequest::get()
       .uri("/tests/test%20space.binary")
       .to_request();
-    let response = test::call_service(&mut srv, request).await;
+    let response = test::call_service(&srv, request).await;
     assert_eq!(response.status(), StatusCode::OK);
 
     let bytes = test::read_body(response).await;
@@ -500,7 +502,7 @@ mod tests {
     let root_path_context = Arc::new((&ServerConfig::default()).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().default_service(Files::new(
+    let srv = test::init_service(App::new().default_service(Files::new(
       "/",
       serve_dir("."),
       root_path_context,
@@ -513,13 +515,13 @@ mod tests {
       .method(Method::POST)
       .to_request();
 
-    let resp = test::call_service(&mut srv, req).await;
+    let resp = test::call_service(&srv, req).await;
     assert_eq!(resp.status(), StatusCode::METHOD_NOT_ALLOWED);
 
     let root_path_context = Arc::new((&ServerConfig::default()).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().default_service(Files::new(
+    let srv = test::init_service(App::new().default_service(Files::new(
       "/",
       serve_dir("."),
       root_path_context,
@@ -530,7 +532,7 @@ mod tests {
       .method(Method::PUT)
       .uri("/Cargo.toml")
       .to_request();
-    let resp = test::call_service(&mut srv, req).await;
+    let resp = test::call_service(&srv, req).await;
     assert_eq!(resp.status(), StatusCode::METHOD_NOT_ALLOWED);
   }
 
@@ -563,7 +565,7 @@ mod tests {
     let root_path_context = Arc::new((&server_config).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().service(Files::new(
+    let srv = test::init_service(App::new().service(Files::new(
       "/",
       serve_dir("."),
       root_path_context,
@@ -572,7 +574,7 @@ mod tests {
     .await;
     let req = TestRequest::with_uri("/tests/test.png").to_request();
 
-    let resp = test::call_service(&mut srv, req).await;
+    let resp = test::call_service(&srv, req).await;
     assert_eq!(resp.status(), StatusCode::OK);
 
     let bytes = test::read_body(resp).await;
@@ -591,7 +593,7 @@ mod tests {
     let root_path_context = Arc::new((&server_config).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().service(Files::new(
+    let srv = test::init_service(App::new().service(Files::new(
       "/",
       serve_dir("."),
       root_path_context,
@@ -600,7 +602,7 @@ mod tests {
     .await;
     let req = TestRequest::with_uri("/%43argo.toml").to_request();
 
-    let resp = test::call_service(&mut srv, req).await;
+    let resp = test::call_service(&srv, req).await;
     assert_eq!(resp.status(), StatusCode::OK);
   }
 
@@ -614,7 +616,7 @@ mod tests {
     let root_path_context = Arc::new((&server_config).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().service(Files::new(
+    let srv = test::init_service(App::new().service(Files::new(
       "/",
       serve_dir("."),
       root_path_context,
@@ -623,7 +625,7 @@ mod tests {
     .await;
     let req = TestRequest::with_uri("/missing").to_request();
 
-    let resp = test::call_service(&mut srv, req).await;
+    let resp = test::call_service(&srv, req).await;
     assert_eq!(resp.status(), StatusCode::NOT_FOUND);
   }
 
@@ -632,7 +634,7 @@ mod tests {
     let root_path_context = Arc::new((&ServerConfig::default()).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().service(Files::new(
+    let srv = test::init_service(App::new().service(Files::new(
       "/",
       serve_dir("."),
       root_path_context,
@@ -641,7 +643,7 @@ mod tests {
     .await;
 
     let req = TestRequest::default().to_request();
-    let resp = test::call_service(&mut srv, req).await;
+    let resp = test::call_service(&srv, req).await;
     assert_eq!(resp.status(), StatusCode::NOT_FOUND);
   }
 
@@ -655,7 +657,7 @@ mod tests {
     let root_path_context = Arc::new((&server_config).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
-    let mut srv = test::init_service(App::new().default_service(Files::new(
+    let srv = test::init_service(App::new().default_service(Files::new(
       "/",
       serve_dir("."),
       root_path_context,
@@ -664,7 +666,7 @@ mod tests {
     .await;
 
     let req = TestRequest::with_uri("/tests").to_request();
-    let resp = test::call_service(&mut srv, req).await;
+    let resp = test::call_service(&srv, req).await;
     assert_eq!(resp.status(), StatusCode::OK);
     assert_eq!(
       resp.headers().get(header::CONTENT_TYPE).unwrap(),
@@ -677,17 +679,18 @@ mod tests {
 
   #[actix_rt::test]
   async fn test_redirect_to_slash_directory() {
-    let mut server_config = ServerConfig::default();
-
-    server_config.index_strategy = Some(IndexStrategyConfig::IndexFiles {
-      filenames: ["test.png".to_owned()].iter().cloned().collect(),
-    });
+    let server_config = ServerConfig {
+      index_strategy: Some(IndexStrategyConfig::IndexFiles {
+        filenames: ["test.png".to_owned()].iter().cloned().collect(),
+      }),
+      ..ServerConfig::default()
+    };
 
     let root_path_context: Arc<PathContext> = Arc::new((&server_config).try_into().unwrap());
     let path_contexts = Arc::new(vec![]);
 
     // should redirect if index present
-    let mut srv = test::init_service(
+    let srv = test::init_service(
       App::new().service(
         Files::new("/", serve_dir("."), root_path_context, path_contexts)
           .redirect_to_slash_directory(),
@@ -695,12 +698,12 @@ mod tests {
     )
     .await;
     let req = TestRequest::with_uri("/tests").to_request();
-    let resp = test::call_service(&mut srv, req).await;
+    let resp = test::call_service(&srv, req).await;
     assert_eq!(resp.status(), StatusCode::FOUND);
 
     // should not redirect if the path is wrong
     let req = TestRequest::with_uri("/not_existing").to_request();
-    let resp = test::call_service(&mut srv, req).await;
+    let resp = test::call_service(&srv, req).await;
     assert_eq!(resp.status(), StatusCode::NOT_FOUND);
   }
 
diff --git a/src/files/path_context.rs b/src/files/path_context.rs
index e98f065..05c3c64 100644
--- a/src/files/path_context.rs
+++ b/src/files/path_context.rs
@@ -255,62 +255,41 @@ mod tests {
 
   #[test]
   fn test_static_path_matcher() {
-    assert_eq!(
-      PathMatcher::Static {
-        path: "hello/world.png".into(),
-      }
-      .matches_path(&"hello/world.png"),
-      true
-    );
+    assert!(PathMatcher::Static {
+      path: "hello/world.png".into(),
+    }
+    .matches_path("hello/world.png"),);
 
-    assert_eq!(
-      PathMatcher::Static {
-        path: "hello/world.tar.gz".into(),
-      }
-      .matches_path(&"hello/world.png"),
-      false
-    );
+    assert!(!PathMatcher::Static {
+      path: "hello/world.tar.gz".into(),
+    }
+    .matches_path("hello/world.png"),);
   }
 
   #[test]
   fn test_prefix_path_matcher() {
-    assert_eq!(
-      PathMatcher::Prefix {
-        prefix: "hello/".into(),
-      }
-      .matches_path(&"hello/world.png"),
-      true
-    );
+    assert!(PathMatcher::Prefix {
+      prefix: "hello/".into(),
+    }
+    .matches_path("hello/world.png"),);
 
-    assert_eq!(
-      PathMatcher::Prefix {
-        prefix: "hello/bye".into(),
-      }
-      .matches_path(&"hello/world.png"),
-      false
-    );
+    assert!(!PathMatcher::Prefix {
+      prefix: "hello/bye".into(),
+    }
+    .matches_path("hello/world.png"),);
   }
 
   #[test]
   fn test_regex_path_matcher() {
-    assert_eq!(
-      Regex::new(r"\.png$").unwrap().is_match("hello/world.png"),
-      true,
-    );
-
-    assert_eq!(
-      Regex::new(r"\.(js|css|png|jpg|jpeg|gif|ico)$")
-        .unwrap()
-        .is_match("hello/world.png"),
-      true,
-    );
-
-    assert_eq!(
-      PathMatcher::Regex {
-        regex: Regex::new(r"\.png$").unwrap(),
-      }
-      .matches_path(&"hello/world.tar.gz"),
-      false
-    );
+    assert!(Regex::new(r"\.png$").unwrap().is_match("hello/world.png"),);
+
+    assert!(Regex::new(r"\.(js|css|png|jpg|jpeg|gif|ico)$")
+      .unwrap()
+      .is_match("hello/world.png"),);
+
+    assert!(!PathMatcher::Regex {
+      regex: Regex::new(r"\.png$").unwrap(),
+    }
+    .matches_path("hello/world.tar.gz"),);
   }
 }
-- 
GitLab