code: def test_clsd001_simple_clientside_serverside_callback(dash_duo):
      app = Dash(__name__, assets_folder="assets")
  
      app.layout = html.Div(
          [
              dcc.Input(id="input"),
              html.Div(id="output-clientside"),
              html.Div(id="output-serverside"),
          ]
      )
  
      @app.callback(
          Output("output-serverside", "children"),
          [Input("input", "value")],
      )
      def update_output(value):
          return 'Server says "{}"'.format(value)
  
      app.clientside_callback(
          ClientsideFunction(
              namespace="clientside", function_name="display"
          ),
          Output("output-clientside", "children"),
          [Input("input", "value")],
      )
  
      dash_duo.start_server(app)
  
      dash_duo.wait_for_text_to_equal(
          "#output-serverside", 'Server says "None"'
      )
      dash_duo.wait_for_text_to_equal(
          "#output-clientside", 'Client says "undefined"'
      )
  
      dash_duo.find_element("#input").send_keys("hello world")
      dash_duo.wait_for_text_to_equal(
          "#output-serverside", 'Server says "hello world"'
      )
      dash_duo.wait_for_text_to_equal(
          "#output-clientside", 'Client says "hello world"'
      )
  
imports: from multiprocessing import Value, Lock
  from dash import Dash, Input, Output, State, ClientsideFunction, ALL, html, dcc
  from selenium.webdriver.common.keys import Keys
label_desc: Use image node_id 1 for calling a global function with example usage: test_clsd001_simple_clientside_serverside_callback(dash_duo) and returns: str