code: def test_cbsc003_callback_with_unloaded_async_component(dash_duo):
      app = Dash()
      app.layout = html.Div(
          children=[
              dcc.Tabs(
                  children=[
                      dcc.Tab(
                          children=[
                              html.Button(
                                  id="btn", children="Update Input"
                              ),
                              html.Div(id="output", children=["Hello"]),
                          ]
                      ),
                      dcc.Tab(
                          children=dash_table.DataTable(
                              id="other-table"
                          )
                      ),
                  ]
              )
          ]
      )
  
      @app.callback(
          Output("output", "children"), [Input("btn", "n_clicks")]
      )
      def update_out(n_clicks):
          if n_clicks is None:
              raise PreventUpdate
  
          return "Bye"
  
      dash_duo.start_server(app)
  
      dash_duo.wait_for_text_to_equal("#output", "Hello")
      dash_duo.find_element("#btn").click()
      dash_duo.wait_for_text_to_equal("#output", "Bye")
      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 3 for calling a global function with example usage: test_cbsc003_callback_with_unloaded_async_component(dash_duo) and returns: str