code: def test_szng001_widths_on_style_change(test):
      base_props = dict(
          data=[
              {"a": 85, "b": 601, "c": 891},
              {"a": 967, "b": 189, "c": 514},
              {"a": 398, "b": 262, "c": 743},
              {"a": 89, "b": 560, "c": 582},
              {"a": 809, "b": 591, "c": 511},
          ],
          columns=[
              {"id": "a", "name": "A"},
              {"id": "b", "name": "B"},
              {"id": "c", "name": "C"},
          ],
          style_data={
              "width": 100,
              "minWidth": 100,
              "maxWidth": 100,
              "border": "1px solid blue",
          },
          row_selectable="single",
          row_deletable=True,
      )
  
      styles = [
          dict(
              style_table=dict(
                  width=500,
                  minWidth=500,
                  maxWidth=500,
                  paddingBottom=10,
                  display="none",
              )
          ),
          dict(
              style_table=dict(
                  width=500,
                  minWidth=500,
                  maxWidth=500,
                  paddingBottom=10,
              )
          ),
          dict(
              style_table=dict(
                  width=750,
                  minWidth=750,
                  maxWidth=750,
                  paddingBottom=10,
              )
          ),
          dict(
              style_table=dict(
                  width=750,
                  minWidth=750,
                  maxWidth=750,
                  paddingBottom=10,
                  display="none",
              )
          ),
          dict(
              style_table=dict(
                  width=350,
                  minWidth=350,
                  maxWidth=350,
                  paddingBottom=10,
              )
          ),
      ]
  
      fixes = [
          dict(),
          dict(fixed_columns=dict(headers=True)),
          dict(fixed_rows=dict(headers=True)),
          dict(
              fixed_columns=dict(headers=True),
              fixed_rows=dict(headers=True),
          ),
          dict(fixed_columns=dict(headers=True, data=1)),
          dict(fixed_rows=dict(headers=True, data=1)),
          dict(
              fixed_columns=dict(headers=True, data=1),
              fixed_rows=dict(headers=True, data=1),
          ),
      ]
  
      variations = []
      style = styles[0]
      i = 0
      for fix in fixes:
          variations.append(
              {**style, **fix, **base_props, "id": "table{}".format(i)}
          )
          i = i + 1
  
      variations_range = range(0, len(variations))
  
      tables = [DataTable(**variation) for variation in variations]
  
      app = dash.Dash(__name__)
      app.layout = Div(
          children=[
              Button(id="btn", children="Click me"),
              Div(
                  [
                      DataTable(
                          **base_props,
                          id="table{}".format(width),
                          style_table=dict(
                              width=width,
                              minWidth=width,
                              maxWidth=width,
                              paddingBottom=10,
                          ),
                      )
                      for width in [350, 500, 750]
                  ]
              ),
              Div(tables),
          ]
      )
  
      @app.callback(
          [
              Output("table{}".format(i), "style_table")
              for i in variations_range
          ],
          [Input("btn", "n_clicks")],
          prevent_initial_call=True,
      )
      def update_styles(n_clicks):
          if n_clicks < len(styles):
              style_table = styles[n_clicks]["style_table"]
              return [style_table for i in variations_range]
          else:
              raise PreventUpdate
  
      test.start_server(app)
  
      for style in styles:
          display = style.get("style_table", dict()).get("display")
          width = style.get("style_table", dict()).get("width")
          target_selector = "#table{}".format(width)
          target = (
              test.find_element(target_selector)
              if display != "none"
              else None
          )
  
          for variation in variations:
              table_selector = "#{}".format(variation["id"])
              table = test.find_element(table_selector)
              if target is None:
                  assert table is not None
                  assert (
                      test.driver.execute_script(
                          "return getComputedStyle(document.querySelector('#{} .dash-spreadsheet-container')).display".format(
                              variation["id"]
                          )
                      )
                      == "none"
                  )
              else:
                  cells_are_same_width(
                      test, target_selector, table_selector
                  )
  
          test.find_element("#btn").click()
  
      assert test.get_log_errors() == []
  
file_path: dash/components/dash-table/tests/selenium/test_sizing.py
imports: from selenium.common.exceptions import StaleElementReferenceException
  from selenium.webdriver.common.by import By
  import dash
  from utils import get_props
  from dash.dependencies import Input, Output
  from dash.exceptions import PreventUpdate
  from dash.testing import wait
  from dash.dash_table import DataTable
  from dash.html import Button, Div
label_desc: Use image node_id 3 for calling a global function with example usage: test_szng001_widths_on_style_change(test) and returns: unknown