diff --git a/tests/lua/test_afd.lua b/tests/lua/test_afd.lua
index addc4ec..a54bdfd 100644
--- a/tests/lua/test_afd.lua
+++ b/tests/lua/test_afd.lua
@@ -46,24 +46,24 @@
         assertEquals(alarms[2].message, 'warn message')
     end
 
-    function TestAfd:test_inject_afd_service_metric_without_alarms()
-        afd.inject_afd_service_metric('nova-scheduler', consts.OKAY, 'node-1', 10, 'some_source')
+    function TestAfd:test_inject_afd_metric_without_alarms()
+        afd.inject_afd_metric(consts.OKAY, 'node-1', 'foo', {}, false)
 
         local alarms = afd.get_alarms()
         assertEquals(#alarms, 0)
-        assertEquals(last_injected_msg.Type, 'afd_service_metric')
+        assertEquals(last_injected_msg.Type, 'afd_metric')
         assertEquals(last_injected_msg.Fields.value, consts.OKAY)
         assertEquals(last_injected_msg.Fields.hostname, 'node-1')
         assertEquals(last_injected_msg.Payload, '{"alarms":[]}')
     end
 
-    function TestAfd:test_inject_afd_service_metric_with_alarms()
+    function TestAfd:test_inject_afd_metric_with_alarms()
         afd.add_to_alarms(consts.CRIT, 'last', 'metric_1', {}, {}, '==', 0, 0, nil, nil, "important message")
-        afd.inject_afd_service_metric('nova-scheduler', consts.CRIT, 'node-1', 10, 'some_source')
+        afd.inject_afd_metric(consts.CRIT, 'node-1', 'foo', {}, false)
 
         local alarms = afd.get_alarms()
         assertEquals(#alarms, 0)
-        assertEquals(last_injected_msg.Type, 'afd_service_metric')
+        assertEquals(last_injected_msg.Type, 'afd_metric')
         assertEquals(last_injected_msg.Fields.value, consts.CRIT)
         assertEquals(last_injected_msg.Fields.hostname, 'node-1')
         assertEquals(last_injected_msg.Fields.environment_id, extra.environment_id)
