diff --git a/presence/test/fallbacktest.cpp b/presence/test/fallbacktest.cpp
index de4a54d..5cbfbc7 100644
--- a/presence/test/fallbacktest.cpp
+++ b/presence/test/fallbacktest.cpp
@@ -51,6 +51,8 @@
         ++failed;
     }
 
+    void logConflict(const std::string&) const override {}
+
     bool _present = false;
     size_t started = 0;
     size_t stopped = 0;
@@ -80,13 +82,13 @@
     ASSERT_EQ(ts.stopped, 0);
     ASSERT_EQ(ts.started, 1);
 
-    f.stateChanged(false);
+    f.stateChanged(false, ts);
     ASSERT_EQ(pstate, 0);
     ASSERT_EQ(ts.failed, 0);
     ASSERT_EQ(ts.stopped, 0);
     ASSERT_EQ(ts.started, 1);
 
-    f.stateChanged(true);
+    f.stateChanged(true, ts);
     ASSERT_EQ(pstate, 1);
     ASSERT_EQ(ts.failed, 0);
     ASSERT_EQ(ts.stopped, 0);
@@ -118,7 +120,7 @@
 
     ts1._present = false;
     ts2._present = false;
-    f.stateChanged(false);
+    f.stateChanged(false, ts1);
     ASSERT_EQ(pstate, 0);
     ASSERT_EQ(ts1.failed, 0);
     ASSERT_EQ(ts1.stopped, 0);
@@ -129,7 +131,7 @@
 
     ts1._present = true;
     ts2._present = true;
-    f.stateChanged(true);
+    f.stateChanged(true, ts1);
     ASSERT_EQ(pstate, 1);
     ASSERT_EQ(ts1.failed, 0);
     ASSERT_EQ(ts1.stopped, 0);
@@ -145,7 +147,7 @@
     // Validate first sensor on->off.
 
     pstate = -1;
-    Fan fan{"/path", "name"};
+    Fan fan{"/path", "name", std::nullopt};
     TestSensor ts1, ts2;
     ts1._present = true;
     ts2._present = true;
@@ -156,7 +158,7 @@
     f.monitor();
     ASSERT_EQ(pstate, 1);
     ts1._present = false;
-    f.stateChanged(false);
+    f.stateChanged(false, ts1);
     ASSERT_EQ(pstate, 1);
     ASSERT_EQ(ts1.failed, 1);
     ASSERT_EQ(ts1.stopped, 1);
@@ -168,7 +170,7 @@
     // Flip the state of both sensors.
     ts1._present = true;
     ts2._present = false;
-    f.stateChanged(false);
+    f.stateChanged(false, ts1);
     ASSERT_EQ(pstate, 0);
     ASSERT_EQ(ts1.failed, 1);
     ASSERT_EQ(ts1.stopped, 1);
@@ -184,7 +186,7 @@
     // Validate first in bad state.
 
     pstate = -1;
-    Fan fan{"/path", "name"};
+    Fan fan{"/path", "name", std::nullopt};
     TestSensor ts1, ts2;
     ts1._present = false;
     ts2._present = true;
@@ -201,7 +203,7 @@
     ASSERT_EQ(ts2.stopped, 0);
     ASSERT_EQ(ts2.started, 1);
 
-    f.stateChanged(false);
+    f.stateChanged(false, ts1);
     ASSERT_EQ(pstate, 0);
     ASSERT_EQ(ts1.failed, 1);
     ASSERT_EQ(ts1.stopped, 0);
@@ -217,7 +219,7 @@
     // Validate both in bad state.
 
     pstate = -1;
-    Fan fan{"/path", "name"};
+    Fan fan{"/path", "name", std::nullopt};
     TestSensor ts1, ts2;
     ts1._present = false;
     ts2._present = false;
diff --git a/presence/test/meson.build b/presence/test/meson.build
index 5970431..38d652e 100644
--- a/presence/test/meson.build
+++ b/presence/test/meson.build
@@ -1,13 +1,21 @@
 
 test_include_directories = include_directories('../..')
 
-test_deps = [gmock_dep, gtest_dep]
+test_deps = [
+    gmock_dep,
+    gtest_dep,
+    sdbusplus_dep,
+    sdeventplus_dep,
+    phosphor_logging_dep,
+]
 
 test(
-    'logger_test',
+    'fallback_test',
     executable(
-        'logger_test',
+        'fallback_test',
         'fallbacktest.cpp',
+        '../fallback.cpp',
+        '../psensor.cpp',
         dependencies: test_deps,
         implicit_include_directories: false,
         include_directories: [test_include_directories],
