code: def test_cbsc016_extra_components_callback(dash_duo):
      lock = Lock()
  
      app = Dash(__name__)
      app._extra_components.append(
          dcc.Store(id="extra-store", data=123)
      )
  
      app.layout = html.Div(
          [
              dcc.Input(id="input", value="initial value"),
              html.Div(
                  html.Div(
                      [1.5, None, "string", html.Div(id="output-1")]
                  )
              ),
          ]
      )
      store_data = Value("i", 0)
  
      @app.callback(
          Output("output-1", "children"),
          [Input("input", "value"), Input("extra-store", "data")],
      )
      def update_output(value, data):
          with lock:
              store_data.value = data
              return value
  
      dash_duo.start_server(app)
  
      dash_duo.wait_for_text_to_equal("#output-1", "initial value")
  
      input_ = dash_duo.find_element("#input")
      dash_duo.clear_input(input_)
      input_.send_keys("A")
  
      dash_duo.wait_for_text_to_equal("#output-1", "A")
  
      assert store_data.value == 123
      assert dash_duo.get_logs() == []
  
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 16 for calling a global function with example usage: test_cbsc016_extra_components_callback(dash_duo) and returns: value