anchor.diff:          multiple_async_workflow_execution_test,
           fail_one_of_many_task_in_box_test,
           fail_only_task_in_box_test,
  -        timeouts_test
  +        timeout_test,
  +        heartbeat_test
       ]).
   
   -define(ENGINE_ID, <<"test_engine">>).
  
positive.code:     ),
      
      test_utils:mock_expect(Workers, workflow_engine_callback_handler, handle_callback, fun(CallbackId, Result) ->
          {_CallbackType, ExecutionId, _EngineId, JobIdentifier, _CallPools} =
              workflow_engine_callback_handler:decode_callback_id(CallbackId),
          {_, _, TaskId} = workflow_execution_state:get_result_processing_data(ExecutionId, JobIdentifier),
          Item = workflow_cached_item:get_item(workflow_execution_state:get_item_id(ExecutionId, JobIdentifier)),
          Master ! {task_processing, self(), <<"result_", TaskId/binary>>, Item},
          receive
              history_saved ->
                  % Warning: do not use meck:passthrough as it does not work when 2 mocks work within one process
                  apply(meck_util:original_name(workflow_engine_callback_handler), handle_callback, [CallbackId, Result]);
              fail_job ->
  
negative.code:                 #{fail_job := {Task, Item}} ->
                      Sender ! fail_job,
                      Acc3;
                  #{delay_execution := {Task, Item}} ->
                      Sender ! delay_execution,
                      Acc3#{execution_history => [{Task, Item} | History]};
                  _ ->
                      Sender ! history_saved,
                      Acc3#{execution_history => [{Task, Item} | History]}
  