code: def test_cbsc005_children_types(dash_duo, engine):
      with json_engine(engine):
          app = Dash()
          app.layout = html.Div(
              [html.Button(id="btn"), html.Div("init", id="out")]
          )
  
          outputs = [
              [None, ""],
              ["a string", "a string"],
              [123, "123"],
              [123.45, "123.45"],
              [[6, 7, 8], "678"],
              [["a", "list", "of", "strings"], "alistofstrings"],
              [["strings", 2, "numbers"], "strings2numbers"],
              [
                  ["a string", html.Div("and a div")],
                  "a string\nand a div",
              ],
          ]
  
          @app.callback(
              Output("out", "children"), [Input("btn", "n_clicks")]
          )
          def set_children(n):
              if n is None or n > len(outputs):
                  return no_update
              return outputs[n - 1][0]
  
          dash_duo.start_server(app)
          dash_duo.wait_for_text_to_equal("#out", "init")
  
          for children, text in outputs:
              dash_duo.find_element("#btn").click()
              dash_duo.wait_for_text_to_equal("#out", text)
  
imports: import json
  import os
  from multiprocessing import Lock, Value
  import pytest
  import time
  import numpy
  import werkzeug
  from dash_test_components import AsyncComponent, CollapseComponent, DelayedEventComponent, FragmentComponent
  from dash import Dash, Input, Output, State, html, dcc, dash_table, no_update, callback_context
  from dash.exceptions import PreventUpdate
  from tests.integration.utils import json_engine
label_desc: Use image node_id 5 for calling a global function with example usage: test_cbsc005_children_types(dash_duo, engine) and returns: outputs, no_update