diff --git a/test/http/router_test.cpp b/test/http/router_test.cpp
index 2372541..e0e5b7a 100644
--- a/test/http/router_test.cpp
+++ b/test/http/router_test.cpp
@@ -30,8 +30,8 @@
 TEST(Router, AllowHeader)
 {
     // Callback handler that does nothing
-    auto nullCallback = [](const Request&,
-                           const std::shared_ptr<bmcweb::AsyncResp>&) {};
+    auto nullCallback =
+        [](const Request&, const std::shared_ptr<bmcweb::AsyncResp>&) {};
 
     Router router;
     std::error_code ec;
@@ -65,17 +65,17 @@
 TEST(Router, OverlapingRoutes)
 {
     // Callback handler that does nothing
-    auto fooCallback = [](const Request&,
-                          const std::shared_ptr<bmcweb::AsyncResp>&) {
-        EXPECT_FALSE(true);
-    };
+    auto fooCallback =
+        [](const Request&, const std::shared_ptr<bmcweb::AsyncResp>&) {
+            EXPECT_FALSE(true);
+        };
     bool barCalled = false;
     auto foobarCallback =
         [&barCalled](const Request&, const std::shared_ptr<bmcweb::AsyncResp>&,
                      const std::string& bar) {
-        barCalled = true;
-        EXPECT_EQ(bar, "bar");
-    };
+            barCalled = true;
+            EXPECT_EQ(bar, "bar");
+        };
 
     Router router;
     std::error_code ec;
@@ -105,8 +105,8 @@
     auto nullCallback =
         [&notFoundCalled](const Request&,
                           const std::shared_ptr<bmcweb::AsyncResp>&) {
-        notFoundCalled = true;
-    };
+            notFoundCalled = true;
+        };
 
     Router router;
     std::error_code ec;
@@ -131,13 +131,13 @@
 TEST(Router, 405)
 {
     // Callback handler that does nothing
-    auto nullCallback = [](const Request&,
-                           const std::shared_ptr<bmcweb::AsyncResp>&) {};
+    auto nullCallback =
+        [](const Request&, const std::shared_ptr<bmcweb::AsyncResp>&) {};
     bool called = false;
     auto notAllowedCallback =
         [&called](const Request&, const std::shared_ptr<bmcweb::AsyncResp>&) {
-        called = true;
-    };
+            called = true;
+        };
 
     Router router;
     std::error_code ec;
