code: def test_server_on_change_round_trip(
      self, bokeh_server_page: BokehServerPage
  ) -> None:
      group = CheckboxGroup(labels=LABELS)
  
      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"] = ([*group.active, 0, 0])[
                  :2
              ]  # keep col length at 2, padded with zero
  
          group.on_change("active", cb)
          doc.add_root(column(group, plot))
  
      page = bokeh_server_page(modify_doc)
  
      el = find_element_for(page.driver, group, 'input[value="2"]')
      el.click()
  
      page.eval_custom_action()
  
      results = page.results
      assert results["data"]["val"] == [2, 0]
  
      el = find_element_for(page.driver, group, 'input[value="0"]')
      el.click()
  
      page.eval_custom_action()
  
      results = page.results
      assert results["data"]["val"] == [0, 2]
  
      assert page.has_no_console_errors()
  
file_path: bokeh/tests/integration/widgets/test_checkbox_group.py
imports: from __future__ import annotations
  import pytest
  from selenium.webdriver.common.by import By
  from bokeh.layouts import column
  from bokeh.models import CheckboxGroup, ColumnDataSource, CustomJS, Plot, Range1d, Scatter
  from tests.support.plugins.project import BokehModelPage, BokehServerPage
  from tests.support.util.selenium import RECORD, find_element_for, find_elements_for
label_desc: Use image node_id 2 for calling the Test_CheckboxGroup obj's underlying member method code with example usage: obj.test_server_on_change_round_trip(bokeh_server_page) without return types