code: def test_exception_for_bad_callbacks(self) -> None:
      m = SomeModel()
      for val in [10, "bar", None, [1], {}, 10.2]:
          with pytest.raises(ValueError):
              m.js_on_change("foo", val)
  
imports: from __future__ import annotations
  import pytest
  from bokeh.core.has_props import is_abstract
  from bokeh.core.properties import Int, List, String
  from bokeh.core.types import ID
  from bokeh.models import *
  from bokeh.models import CustomJS
  from bokeh.plotting import *
  from bokeh.document import document
  from bokeh.model import Model
label_desc: Use image node_id 2 for calling the Test_js_on_change obj's underlying member method code with example usage: obj.test_exception_for_bad_callbacks() without return types