Skip to content

Commit 09d9dcc

Browse files
committed
Update NestingParser test
1 parent 70da8ac commit 09d9dcc

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

test/irb/test_nesting_parser.rb

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
1+
# frozen_string_literal: false
22
require 'irb'
3-
require 'rubygems'
43

54
require_relative "helper"
65

76
module TestIRB
8-
class TestNestingParser < TestCase
7+
class NestingParserTest < TestCase
98
def setup
109
save_encodings
1110
end
@@ -18,7 +17,7 @@ def parse_by_line(code)
1817
IRB::NestingParser.parse_by_line(RubyLex.ripper_lex_without_warning(code))
1918
end
2019

21-
def test_scan
20+
def test_open_tokens
2221
code = <<~'EOS'
2322
class A
2423
def f
@@ -78,7 +77,11 @@ def f() = 1
7877
end
7978
EOS
8079
line_results = parse_by_line(code)
81-
line_results[1...-1].each {|result| assert_equal(['class'], result[2].map(&:tok)) }
80+
assert_equal(code.lines.size, line_results.size)
81+
class_open, *inner_line_results, class_close = line_results
82+
assert_equal(['class'], class_open[2].map(&:tok))
83+
inner_line_results.each {|result| assert_equal(['class'], result[2].map(&:tok)) }
84+
assert_equal([], class_close[2].map(&:tok))
8285
end
8386

8487
def test_multiline_string
@@ -93,13 +96,14 @@ def test_multiline_string
9396
A
9497
EOS
9598
line_results = parse_by_line(code)
99+
assert_equal(code.lines.size, line_results.size)
96100
string_content_line, string_opens = line_results[1]
97-
assert_equal("\naaa\nbbb\n", string_content_line.map(&:first).map(&:tok).join)
98-
assert_equal("aaa\n", string_content_line.map(&:last).join)
101+
assert_equal("\naaa\nbbb\n", string_content_line.first.first.tok)
102+
assert_equal("aaa\n", string_content_line.first.last)
99103
assert_equal(['"'], string_opens.map(&:tok))
100104
heredoc_content_line, heredoc_opens = line_results[6]
101-
assert_equal("aaa\nbbb\n", heredoc_content_line.map(&:first).map(&:tok).join)
102-
assert_equal("bbb\n", heredoc_content_line.map(&:last).join)
105+
assert_equal("aaa\nbbb\n", heredoc_content_line.first.first.tok)
106+
assert_equal("bbb\n", heredoc_content_line.first.last)
103107
assert_equal(['<<A'], heredoc_opens.map(&:tok))
104108
_line, _prev_opens, next_opens, _min_depth = line_results.last
105109
assert_equal([], next_opens)
@@ -230,7 +234,7 @@ def test_for_in
230234
here
231235
end
232236
EOS
233-
line_results = parse_by_line(code).select { |tokens,| tokens.map(&:last).include? 'here' }
237+
line_results = parse_by_line(code).select { |tokens,| tokens.map(&:last).include?('here') }
234238
assert_equal(7, line_results.size)
235239
line_results.each do |_tokens, _prev_opens, next_opens, _min_depth|
236240
assert_equal(['for'], next_opens.map(&:tok))
@@ -268,7 +272,7 @@ def test_while_until
268272
EOS
269273
%w[while until].each do |keyword|
270274
code = base_code.gsub('while_or_until', keyword)
271-
line_results = parse_by_line(code).select { |tokens,| tokens.map(&:last).include? 'here' }
275+
line_results = parse_by_line(code).select { |tokens,| tokens.map(&:last).include?('here') }
272276
assert_equal(7, line_results.size)
273277
line_results.each do |_tokens, _prev_opens, next_opens, _min_depth|
274278
assert_equal([keyword], next_opens.map(&:tok) )

0 commit comments

Comments
 (0)