summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2023-09-19 22:10:34 -0400
committergit <svn-admin@ruby-lang.org>2023-09-22 14:07:48 +0000
commita5ae5f71fd56357104977952a29db1e70aa658ea (patch)
tree20fcff68ba5824e7c5e8412538a3da9f93941e6a /test
parent170e622aadc8287bfce78481036fca658b46c6e6 (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.rb21
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