[ruby/yarp] add tests for `Location#join`

https://github.com/ruby/yarp/commit/b01711396f
This commit is contained in:
Nathan Froyd 2023-08-30 10:47:59 -04:00 коммит произвёл git
Родитель 74f4d2683e
Коммит c521b6f823
1 изменённых файлов: 27 добавлений и 0 удалений

Просмотреть файл

@ -31,6 +31,33 @@ class YARPRubyAPITest < Test::Unit::TestCase
assert_equal 0.5ri, parse_expression("0.5ri").value
end
def test_location_join
recv, args_node, _ = parse_expression("1234 + 567").child_nodes
arg = args_node.arguments[0]
joined = recv.location.join(arg.location)
assert_equal 0, joined.start_offset
assert_equal 10, joined.length
e = assert_raises RuntimeError do
arg.location.join(recv.location)
end
assert_equal "Incompatible locations", e.message
other_recv, other_args_node, _ = parse_expression("1234 + 567").child_nodes
other_arg = other_args_node.arguments[0]
e = assert_raises RuntimeError do
other_arg.location.join(recv.location)
end
assert_equal "Incompatible sources", e.message
e = assert_raises RuntimeError do
recv.location.join(other_arg.location)
end
assert_equal "Incompatible sources", e.message
end
private
def parse_expression(source)