diff --git a/test/fanpwm_unittest.cpp b/test/fanpwm_unittest.cpp
index b407c7d..0c34ab2 100644
--- a/test/fanpwm_unittest.cpp
+++ b/test/fanpwm_unittest.cpp
@@ -2,6 +2,7 @@
 #include "hwmonio_mock.hpp"
 
 #include <sdbusplus/test/sdbus_mock.hpp>
+
 #include <string>
 
 #include <gmock/gmock.h>
@@ -41,9 +42,9 @@
                                                         StrEq(intf), NotNull()))
             .WillOnce(Invoke(
                 [=](sd_bus*, const char*, const char*, const char** names) {
-                    EXPECT_STREQ(property.c_str(), names[0]);
-                    return 0;
-                }));
+            EXPECT_STREQ(property.c_str(), names[0]);
+            return 0;
+            }));
     }
 
     return;
diff --git a/test/gpio_mock.hpp b/test/gpio_mock.hpp
index d1acfef..0e659f8 100644
--- a/test/gpio_mock.hpp
+++ b/test/gpio_mock.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <gpioplus/handle.hpp>
+
 #include <memory>
 #include <string>
 
diff --git a/test/hwmon_unittest.cpp b/test/hwmon_unittest.cpp
index 1c538c7..ef3ef7d 100644
--- a/test/hwmon_unittest.cpp
+++ b/test/hwmon_unittest.cpp
@@ -5,7 +5,6 @@
 
 TEST(HwmonTest, InvalidType)
 {
-
     hwmon::Attributes attrs;
     EXPECT_FALSE(hwmon::getAttributes("invalid", attrs));
 }
diff --git a/test/hwmonio_default_unittest.cpp b/test/hwmonio_default_unittest.cpp
index 233bf56..875326a 100644
--- a/test/hwmonio_default_unittest.cpp
+++ b/test/hwmonio_default_unittest.cpp
@@ -18,9 +18,7 @@
 class HwmonIOTest : public ::testing::Test
 {
   protected:
-    HwmonIOTest() : _hwmonio(_path, &_mock)
-    {
-    }
+    HwmonIOTest() : _hwmonio(_path, &_mock) {}
 
     const int64_t _value = 12;
     const std::string _path = "abcd";
diff --git a/test/sensor_unittest.cpp b/test/sensor_unittest.cpp
index 15a4807..a1026cc 100644
--- a/test/sensor_unittest.cpp
+++ b/test/sensor_unittest.cpp
@@ -4,6 +4,7 @@
 #include "sensor.hpp"
 
 #include <gpioplus/test/handle.hpp>
+
 #include <memory>
 #include <utility>
 
@@ -61,8 +62,8 @@
     EXPECT_CALL(env::mockEnv, get(StrEq("REMOVERCS_temp5")))
         .WillOnce(Return(""));
 
-    auto sensor =
-        std::make_unique<sensor::Sensor>(sensorKey, hwmonio_mock.get(), path);
+    auto sensor = std::make_unique<sensor::Sensor>(sensorKey,
+                                                   hwmonio_mock.get(), path);
     EXPECT_FALSE(sensor == nullptr);
 }
 
@@ -98,8 +99,8 @@
     EXPECT_CALL(env::mockEnv, get(StrEq("REMOVERCS_temp5")))
         .WillOnce(Return(""));
 
-    auto sensor =
-        std::make_unique<sensor::Sensor>(sensorKey, hwmonio_mock.get(), path);
+    auto sensor = std::make_unique<sensor::Sensor>(sensorKey,
+                                                   hwmonio_mock.get(), path);
     EXPECT_FALSE(sensor == nullptr);
 }
 
@@ -125,8 +126,8 @@
     EXPECT_CALL(env::mockEnv, get(StrEq("REMOVERCS_temp5")))
         .WillOnce(Return(""));
 
-    auto sensor =
-        std::make_unique<sensor::Sensor>(sensorKey, hwmonio_mock.get(), path);
+    auto sensor = std::make_unique<sensor::Sensor>(sensorKey,
+                                                   hwmonio_mock.get(), path);
     EXPECT_FALSE(sensor == nullptr);
 
     double startingValue = 1.0;
