code: def test_draw_mermaid_text(tmp_path):
      pipe = Pipeline()
      pipe.add_component("comp1", AddFixedValue(add=3))
      pipe.add_component("comp2", Double())
      pipe.connect("comp1.result", "comp2.value")
      pipe.connect("comp2.value", "comp1.value")
  
      _draw(
          pipe.graph, tmp_path / "test_pipe.md", engine="mermaid-text"
      )
      assert os.path.exists(tmp_path / "test_pipe.md")
      assert (
          open(tmp_path / "test_pipe.md", "r").read()
          == """
  %%{ init: {'theme': 'neutral' } }%%
  
  graph TD;
  
  comp1["<b>comp1</b><br><small><i>AddFixedValue<br><br>Optional inputs:<ul style='text-align:left;'><li>add (Optional[int])</li></ul></i></small>"]:::component -- "result -> value<br><small><i>int</i></small>" --> comp2["<b>comp2</b><br><small><i>Double</i></small>"]:::component
  comp2["<b>comp2</b><br><small><i>Double</i></small>"]:::component -- "value -> value<br><small><i>int</i></small>" --> comp1["<b>comp1</b><br><small><i>AddFixedValue<br><br>Optional inputs:<ul style='text-align:left;'><li>add (Optional[int])</li></ul></i></small>"]:::component
  
  classDef component text-align:center;
  """
      )
  
file_path: haystack/test/core/pipeline/test_draw.py
imports: import os
  import filecmp
  from unittest.mock import patch, MagicMock
  import pytest
  import requests
  from haystack.core.pipeline import Pipeline
  from haystack.core.pipeline.draw.draw import _draw, _convert
  from haystack.core.errors import PipelineDrawingError
  from haystack.testing.sample_components import Double, AddFixedValue
label_desc: Use image node_id 3 for calling a global function with example usage: test_draw_mermaid_text(tmp_path) without return types