diff --git a/test/http/mutual_tls.cpp b/test/http/mutual_tls.cpp
index 9d964bf..e354466 100644
--- a/test/http/mutual_tls.cpp
+++ b/test/http/mutual_tls.cpp
@@ -120,8 +120,8 @@
 
     boost::asio::ip::address ip;
     boost::asio::ssl::verify_context ctx(x509Store.get());
-    std::shared_ptr<persistent_data::UserSession> session = verifyMtlsUser(ip,
-                                                                           ctx);
+    std::shared_ptr<persistent_data::UserSession> session =
+        verifyMtlsUser(ip, ctx);
     ASSERT_THAT(session, NotNull());
     EXPECT_THAT(session->username, "user");
 }
@@ -134,8 +134,8 @@
         OSSLX509 x509;
         x509.setSubjectName();
 
-        X509_EXTENSION* ex = X509V3_EXT_conf_nid(nullptr, nullptr,
-                                                 NID_key_usage, usageString);
+        X509_EXTENSION* ex =
+            X509V3_EXT_conf_nid(nullptr, nullptr, NID_key_usage, usageString);
 
         ASSERT_THAT(ex, NotNull());
         ASSERT_EQ(X509_add_ext(x509.get(), ex, -1), 1);
@@ -164,8 +164,8 @@
 
     boost::asio::ip::address ip;
     boost::asio::ssl::verify_context ctx(x509Store.get());
-    std::shared_ptr<persistent_data::UserSession> session = verifyMtlsUser(ip,
-                                                                           ctx);
+    std::shared_ptr<persistent_data::UserSession> session =
+        verifyMtlsUser(ip, ctx);
     ASSERT_THAT(session, IsNull());
 }
 } // namespace
