diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2023-09-19 22:10:34 -0400 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2023-09-22 14:07:48 +0000 |
| commit | a5ae5f71fd56357104977952a29db1e70aa658ea (patch) | |
| tree | 20fcff68ba5824e7c5e8412538a3da9f93941e6a /test | |
| parent | 170e622aadc8287bfce78481036fca658b46c6e6 (diff) | |
[ruby/yarp] Fix listener leave event order
https://github.com/ruby/yarp/commit/1e6e264836
Diffstat (limited to 'test')
| -rw-r--r-- | test/yarp/dispatcher_test.rb | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/test/yarp/dispatcher_test.rb b/test/yarp/dispatcher_test.rb index f27cf49e17..e67562e2da 100644 --- a/test/yarp/dispatcher_test.rb +++ b/test/yarp/dispatcher_test.rb @@ -11,20 +11,23 @@ module YARP @events_received = [] end - def call_node_enter(node) - events_received << :call_node_enter + def on_call_node_enter(node) + events_received << :on_call_node_enter end - def call_node_leave(node) - events_received << :call_node_leave + def on_call_node_leave(node) + events_received << :on_call_node_leave + end + + def on_integer_node_enter(node) + events_received << :on_integer_node_enter end end def test_dispatching_events listener = TestListener.new - dispatcher = Dispatcher.new - dispatcher.register(listener, :call_node_enter, :call_node_leave) + dispatcher.register(listener, :on_call_node_enter, :on_call_node_leave, :on_integer_node_enter) root = YARP.parse(<<~RUBY).value def foo @@ -33,7 +36,11 @@ module YARP RUBY dispatcher.dispatch(root) - assert_equal([:call_node_enter, :call_node_leave], listener.events_received) + 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) + + listener.events_received.clear + dispatcher.dispatch_once(root.statements.body.first.body.body.first) + assert_equal([:on_call_node_enter, :on_call_node_leave], listener.events_received) end end end |
