Skip to content

Commit a9744da

Browse files
committed
Fix prompt test
1 parent 1d0d30f commit a9744da

File tree

2 files changed

+23
-23
lines changed

2 files changed

+23
-23
lines changed

test/irb/test_context.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -614,21 +614,21 @@ def test_eval_input_with_long_exception
614614
def test_prompt_main_escape
615615
main = Struct.new(:to_s).new("main\a\t\r\n")
616616
irb = IRB::Irb.new(IRB::WorkSpace.new(main), TestInputMethod.new)
617-
assert_equal("irb(main )>", irb.prompt('irb(%m)>', nil, 1, 1))
617+
assert_equal("irb(main )>", irb.format_prompt('irb(%m)>', nil, 1, 1))
618618
end
619619

620620
def test_prompt_main_inspect_escape
621621
main = Struct.new(:inspect).new("main\\n\nmain")
622622
irb = IRB::Irb.new(IRB::WorkSpace.new(main), TestInputMethod.new)
623-
assert_equal("irb(main\\n main)>", irb.prompt('irb(%M)>', nil, 1, 1))
623+
assert_equal("irb(main\\n main)>", irb.format_prompt('irb(%M)>', nil, 1, 1))
624624
end
625625

626626
def test_prompt_main_truncate
627627
main = Struct.new(:to_s).new("a" * 100)
628628
def main.inspect; to_s.inspect; end
629629
irb = IRB::Irb.new(IRB::WorkSpace.new(main), TestInputMethod.new)
630-
assert_equal('irb(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa...)>', irb.prompt('irb(%m)>', nil, 1, 1))
631-
assert_equal('irb("aaaaaaaaaaaaaaaaaaaaaaaaaaaa...)>', irb.prompt('irb(%M)>', nil, 1, 1))
630+
assert_equal('irb(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa...)>', irb.format_prompt('irb(%m)>', nil, 1, 1))
631+
assert_equal('irb("aaaaaaaaaaaaaaaaaaaaaaaaaaaa...)>', irb.format_prompt('irb(%M)>', nil, 1, 1))
632632
end
633633

634634
def test_lineno

test/irb/test_irb.rb

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ class MockIO_AutoIndent
7373

7474
def initialize(*params)
7575
@params = params
76-
@calculated_indent
7776
end
7877

7978
def auto_indent(&block)
@@ -82,14 +81,14 @@ def auto_indent(&block)
8281
end
8382

8483
class MockIO_DynamicPrompt
84+
attr_reader :prompt_list
85+
8586
def initialize(params, &assertion)
8687
@params = params
87-
@assertion = assertion
8888
end
8989

9090
def dynamic_prompt(&block)
91-
result = block.call(@params)
92-
@assertion.call(result)
91+
@prompt_list = block.call(@params)
9392
end
9493
end
9594

@@ -708,24 +707,25 @@ def test_dynamic_prompt_with_blank_line
708707

709708
def assert_dynamic_prompt(input_with_prompt)
710709
expected_prompt_list, lines = input_with_prompt.transpose
711-
dynamic_prompt_executed = false
712-
io = MockIO_DynamicPrompt.new(lines) do |prompt_list|
713-
error_message = <<~EOM
714-
Expected dynamic prompt:
715-
#{expected_prompt_list.join("\n")}
716-
717-
Actual dynamic prompt:
718-
#{prompt_list.join("\n")}
719-
EOM
720-
dynamic_prompt_executed = true
721-
assert_equal(expected_prompt_list, prompt_list, error_message)
722-
end
723-
@irb.context.io = io
724-
@irb.scanner.set_prompt do |ltype, indent, continue, line_no|
710+
def @irb.prompt(opens, continue, line_offset)
711+
ltype = @scanner.ltype_from_open_tokens(opens)
712+
indent = @scanner.calc_indent_level(opens)
713+
continue = opens.any? || continue
714+
line_no = @line_no + line_offset
725715
'%03d:%01d:%1s:%s ' % [line_no, indent, ltype, continue ? '*' : '>']
726716
end
717+
io = MockIO_DynamicPrompt.new(lines)
718+
@irb.context.io = io
727719
@irb.configure_io
728-
assert dynamic_prompt_executed, "dynamic_prompt's assertions were not executed."
720+
721+
error_message = <<~EOM
722+
Expected dynamic prompt:
723+
#{expected_prompt_list.join("\n")}
724+
725+
Actual dynamic prompt:
726+
#{io.prompt_list.join("\n")}
727+
EOM
728+
assert_equal(expected_prompt_list, io.prompt_list, error_message)
729729
end
730730
end
731731

0 commit comments

Comments
 (0)