code: def test_server_on_change_round_trip(
      self, bokeh_server_page: BokehServerPage
  ) -> None:
      slider = Slider(start=0, end=10, value=1, title="bar", width=300)
  
      def modify_doc(doc):
          source = ColumnDataSource(
              dict(x=[1, 2], y=[1, 1], val=["a", "b"])
          )
          plot = Plot(
              height=400,
              width=400,
              x_range=Range1d(0, 1),
              y_range=Range1d(0, 1),
              min_border=0,
          )
          plot.add_glyph(source, Scatter(x="x", y="y", size=20))
          plot.tags.append(
              CustomJS(
                  name="custom-action",
                  args=dict(s=source),
                  code=RECORD("data", "s.data"),
              )
          )
  
          def cb(attr, old, new):
              source.data["val"] = [old, new]
  
          slider.on_change("value", cb)
          doc.add_root(column(slider, plot))
  
      page = bokeh_server_page(modify_doc)
  
      drag_slider(page.driver, slider, 50)
  
      page.eval_custom_action()
      results = page.results
      old, new = results["data"]["val"]
      assert float(old) == 1
      assert float(new) > 1
  
      drag_slider(page.driver, slider, 50)
  
      page.eval_custom_action()
      results = page.results
      old, new = results["data"]["val"]
      assert float(new) > 2
  
      drag_slider(page.driver, slider, -135)
  
      page.eval_custom_action()
      results = page.results
      old, new = results["data"]["val"]
      assert float(new) == 0
  
file_path: bokeh/tests/integration/widgets/test_slider.py
imports: from __future__ import annotations
  import pytest
  from time import sleep
  from bokeh.layouts import column
  from bokeh.models import ColumnDataSource, CustomJS, Plot, Range1d, Scatter, Slider
  from tests.support.plugins.project import BokehModelPage, BokehServerPage
  from tests.support.util.selenium import RECORD, Keys, drag_slider, find_element_for, find_elements_for, get_slider_bar_color, get_slider_title_text, get_slider_title_value, select_element_and_press_key
label_desc: Use image node_id 7 for calling the Test_Slider obj's underlying member method code with example usage: obj.test_server_on_change_round_trip(bokeh_server_page) without return types