@@ -25,9 +25,12 @@ def on_integer_node_enter(node)
2525 end
2626
2727 def test_dispatching_events
28- listener = TestListener . new
28+ listener_manual = TestListener . new
29+ listener_public = TestListener . new
30+
2931 dispatcher = Dispatcher . new
30- dispatcher . register ( listener , :on_call_node_enter , :on_call_node_leave , :on_integer_node_enter )
32+ dispatcher . register ( listener_manual , :on_call_node_enter , :on_call_node_leave , :on_integer_node_enter )
33+ dispatcher . register_public_methods ( listener_public )
3134
3235 root = Prism . parse ( <<~RUBY ) . value
3336 def foo
@@ -36,11 +39,17 @@ def foo
3639 RUBY
3740
3841 dispatcher . dispatch ( root )
39- assert_equal ( [ :on_call_node_enter , :on_integer_node_enter , :on_integer_node_enter , :on_integer_node_enter , :on_call_node_leave ] , listener . events_received )
4042
41- listener . events_received . clear
43+ [ listener_manual , listener_public ] . each do |listener |
44+ assert_equal ( [ :on_call_node_enter , :on_integer_node_enter , :on_integer_node_enter , :on_integer_node_enter , :on_call_node_leave ] , listener . events_received )
45+ listener . events_received . clear
46+ end
47+
4248 dispatcher . dispatch_once ( root . statements . body . first . body . body . first )
43- assert_equal ( [ :on_call_node_enter , :on_call_node_leave ] , listener . events_received )
49+
50+ [ listener_manual , listener_public ] . each do |listener |
51+ assert_equal ( [ :on_call_node_enter , :on_call_node_leave ] , listener . events_received )
52+ end
4453 end
4554 end
4655end
0 commit comments