diff --git a/tests/src/params/trigger_params.hpp b/tests/src/params/trigger_params.hpp
index b39941c..ae97732 100644
--- a/tests/src/params/trigger_params.hpp
+++ b/tests/src/params/trigger_params.hpp
@@ -99,6 +99,28 @@
         return labeledThresholdsProperty;
     }
 
+    const std::vector<numeric::LabeledThresholdParam>
+        numericThresholdParams() const
+    {
+        const auto* num = std::get_if<0>(&labeledThresholdsProperty);
+        if (num == nullptr)
+        {
+            return {};
+        }
+        return *num;
+    }
+
+    const std::vector<discrete::LabeledThresholdParam>
+        discreteThresholdParams() const
+    {
+        const auto* num = std::get_if<1>(&labeledThresholdsProperty);
+        if (num == nullptr)
+        {
+            return {};
+        }
+        return *num;
+    }
+
   private:
     std::string idProperty = "Trigger1";
     std::string nameProperty = "My Numeric Trigger";
diff --git a/tests/src/test_trigger.cpp b/tests/src/test_trigger.cpp
index 9c68d94..98162ca 100644
--- a/tests/src/test_trigger.cpp
+++ b/tests/src/test_trigger.cpp
@@ -165,10 +165,16 @@
     EXPECT_THAT(
         getProperty<bool>(sut->getPath(), "Discrete"),
         Eq(isTriggerThresholdDiscrete(triggerParams.thresholdParams())));
-    EXPECT_THAT(
-        getProperty<TriggerThresholdParams>(sut->getPath(), "Thresholds"),
-        Eq(std::visit(utils::FromLabeledThresholdParamConversion(),
-                      triggerParams.thresholdParams())));
+
+    EXPECT_THAT(getProperty<std::vector<numeric::ThresholdParam>>(
+                    sut->getPath(), "NumericThresholds"),
+                Eq(std::get<0>(utils::FromLabeledThresholdParamConversion()(
+                    triggerParams.numericThresholdParams()))));
+
+    EXPECT_THAT(getProperty<std::vector<discrete::ThresholdParam>>(
+                    sut->getPath(), "DiscreteThresholds"),
+                Eq(std::get<1>(utils::FromLabeledThresholdParamConversion()(
+                    triggerParams.discreteThresholdParams()))));
 }
 
 TEST_F(TestTrigger, checkBasicGetters)
diff --git a/tests/src/test_trigger_manager.cpp b/tests/src/test_trigger_manager.cpp
index a7651ef..3204b19 100644
--- a/tests/src/test_trigger_manager.cpp
+++ b/tests/src/test_trigger_manager.cpp
@@ -24,6 +24,14 @@
     {
         const auto sensorInfos =
             utils::fromLabeledSensorsInfo(params.sensors());
+        const std::vector<numeric::LabeledThresholdParam> numThresh =
+            params.numericThresholdParams();
+        const std::vector<discrete::LabeledThresholdParam> discThresh =
+            params.discreteThresholdParams();
+        const std::vector<numeric::ThresholdParam> numThresh2 = std::get<0>(
+            utils::FromLabeledThresholdParamConversion()(numThresh));
+        const auto discThresh2 = std::get<1>(
+            utils::FromLabeledThresholdParamConversion()(discThresh));
 
         std::promise<std::pair<boost::system::error_code, std::string>>
             addTriggerPromise;
@@ -38,9 +46,7 @@
             utils::transform(
                 params.triggerActions(),
                 [](const auto& action) { return actionToString(action); }),
-            sensorInfos, params.reports(),
-            std::visit(utils::FromLabeledThresholdParamConversion(),
-                       params.thresholdParams()));
+            sensorInfos, params.reports(), numThresh2, discThresh2);
         return DbusEnvironment::waitForFuture(addTriggerPromise.get_future());
     }
 
