def METHOD_NAME(
    language_server_initialized: IRobocorpLanguageServerClient,
    cases: CasesFixture,
    data_regression,
):
    from robocorp_code.commands import ROBOCORP_LIST_WORK_ITEMS_INTERNAL
    from robocorp_code.protocols import ActionResultDictWorkItems
    from robocorp_code.robocorp_language_server import RobocorpLanguageServer
    from robocorp_code.protocols import WorkItemsInfo
    client = language_server_initialized
    robot = cases.get_path("custom_envs/work_items/robot.yaml")
    # Fail: robot required
    ret = client.execute_command(ROBOCORP_LIST_WORK_ITEMS_INTERNAL, [])
    action_result: ActionResultDictWorkItems = ret["result"]
    assert not action_result["success"]
    # Fail: robot does not exist
    ret = client.execute_command(
        ROBOCORP_LIST_WORK_ITEMS_INTERNAL,
        [{"robot": "does not exist", "increment_output": True}],
    )
    action_result = ret["result"]
    assert not action_result["success"]
    def run_and_check(
        basename, output_prefix=None, increment_output: bool = True
    ) -> WorkItemsInfo:
        dct: dict = {"robot": robot}
        if output_prefix:
            dct["output_prefix"] = output_prefix
        dct["increment_output"] = increment_output
        ret = client.execute_command(ROBOCORP_LIST_WORK_ITEMS_INTERNAL, [dct])
        action_result = ret["result"]
        assert action_result["success"]
        robot_parent = Path(robot).parent
        work_items_info = action_result["result"]
        assert work_items_info
        data_regression.check(
            make_info_relative(work_items_info, robot_parent), basename=basename
        )
        return work_items_info
    run_and_check("test_list_work_items")
    # new_output_workitem_path is empty now.
    run_and_check("test_list_work_items-1-no-increment", increment_output=False)
    # Should have a different "new_output_workitem_path" output (even if we
    # didn't explicitly write to the previous one).
    run_and_check("test_list_work_items-2")
    original = RobocorpLanguageServer.TIMEOUT_TO_CONSIDER_LAST_RUN_FRESH
    try:
        RobocorpLanguageServer.TIMEOUT_TO_CONSIDER_LAST_RUN_FRESH = 0.5
        run_and_check("test_list_work_items-interactive-1", "interactive-")
        run_and_check("test_list_work_items-interactive-2", "interactive-")
        # Consider only filesystem after timeout elapses
        time.sleep(RobocorpLanguageServer.TIMEOUT_TO_CONSIDER_LAST_RUN_FRESH)
        info_1: WorkItemsInfo = run_and_check(
            "test_list_work_items-interactive-1", "interactive-"
        )
        run_and_check("test_list_work_items-interactive-2", "interactive-")
        time.sleep(RobocorpLanguageServer.TIMEOUT_TO_CONSIDER_LAST_RUN_FRESH)
        # Check that it's computed based only on what's available in the
        # filesystem now that the timeout elapsed.
        p = Path(info_1["new_output_workitem_path"])
        p.parent.mkdir(exist_ok=True)
        p.write_text("{}")
        run_and_check("test_list_work_items-interactive-3", "interactive-")
    finally:
        RobocorpLanguageServer.TIMEOUT_TO_CONSIDER_LAST_RUN_FRESH = original