code: def test_joiner_with_pipeline_run():
      pipeline = Pipeline()
      pipeline.add_component("hello", Hello())
      pipeline.add_component("joiner", StringJoiner())
      pipeline.connect("hello", "joiner")
  
      results = pipeline.run(
          {
              "hello": {"word": "world"},
              "joiner": {"input_str": "another string!"},
          }
      )
      assert results == {
          "joiner": {"output": "another string! Hello, world!"}
      }
  
imports: from haystack.core.pipeline import Pipeline
  from haystack.testing.sample_components import StringJoiner, StringListJoiner, Hello, TextSplitter
  import logging
label_desc: Use image node_id 3 for calling a global function with example usage: test_joiner_with_pipeline_run() without return types