code: def test_cbsc006_array_of_objects(dash_duo, engine):
      with json_engine(engine):
          app = Dash()
          app.layout = html.Div(
              [
                  html.Button(id="btn"),
                  dcc.Dropdown(id="dd"),
                  html.Div(id="out"),
              ]
          )
  
          @app.callback(
              Output("dd", "options"), [Input("btn", "n_clicks")]
          )
          def set_options(n):
              return [
                  {"label": "opt{}".format(i), "value": i}
                  for i in range(n or 0)
              ]
  
          @app.callback(
              Output("out", "children"), [Input("dd", "options")]
          )
          def set_out(opts):
              print(repr(opts))
              return len(opts)
  
          dash_duo.start_server(app)
  
          dash_duo.wait_for_text_to_equal("#out", "0")
          for i in range(5):
              dash_duo.find_element("#btn").click()
              dash_duo.wait_for_text_to_equal("#out", str(i + 1))
              dash_duo.select_dcc_dropdown("#dd", "opt{}".format(i))
  
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 6 for calling a global function with example usage: test_cbsc006_array_of_objects(dash_duo, engine) and returns: unknown, len