code: def test_cbsc008_wildcard_prop_callbacks(dash_duo):
      lock = Lock()
  
      app = Dash(__name__)
      app.layout = html.Div(
          [
              dcc.Input(id="input", value="initial value"),
              html.Div(
                  html.Div(
                      [
                          1.5,
                          None,
                          "string",
                          html.Div(
                              id="output-1",
                              **{
                                  "data-cb": "initial value",
                                  "aria-cb": "initial value",
                              },
                          ),
                      ]
                  )
              ),
          ]
      )
  
      input_call_count = Value("i", 0)
      percy_enabled = Value("b", False)
  
      def snapshot(name):
          percy_enabled.value = os.getenv("PERCY_ENABLE", "") != ""
          dash_duo.percy_snapshot(name=name)
          percy_enabled.value = False
  
      @app.callback(
          Output("output-1", "data-cb"), [Input("input", "value")]
      )
      def update_data(value):
          with lock:
              if not percy_enabled.value:
                  input_call_count.value += 1
              return value
  
      @app.callback(
          Output("output-1", "children"), [Input("output-1", "data-cb")]
      )
      def update_text(data):
          return data
  
      dash_duo.start_server(app)
      dash_duo.wait_for_text_to_equal("#output-1", "initial value")
      assert (
          dash_duo.find_element("#output-1").get_attribute("data-cb")
          == "initial value"
      )
  
      input1 = dash_duo.find_element("#input")
      dash_duo.clear_input(input1)
  
      for key in "hello world":
          with lock:
              input1.send_keys(key)
  
      dash_duo.wait_for_text_to_equal("#output-1", "hello world")
      assert (
          dash_duo.find_element("#output-1").get_attribute("data-cb")
          == "hello world"
      )
  
      # an initial call, one for clearing the input
      # and one for each hello world character
      assert input_call_count.value == 2 + len("hello world")
  
      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 8 for calling a global function with example usage: test_cbsc008_wildcard_prop_callbacks(dash_duo) and returns: data, value