Module: TTYtest::Matchers
- Included in:
- Capture
- Defined in:
- lib/ttytest/matchers.rb
Overview
Assertions for ttytest2.
Constant Summary collapse
- METHODS =
public_instance_methods
Instance Method Summary collapse
-
#assert_contents(expected) ⇒ Object
(also: #assert_matches)
Asserts the full contents of the terminal.
- #assert_cursor_hidden ⇒ Object
-
#assert_cursor_position(x, y) ⇒ Object
Asserts that the cursor is in the expected position.
- #assert_cursor_visible ⇒ Object
-
#assert_row(row_number, expected) ⇒ Object
Asserts the contents of a single row.
-
#assert_row_ends_with(row_number, expected) ⇒ Object
Asserts the contents of a single row end with expected.
-
#assert_row_like(row_number, expected) ⇒ Object
Asserts the contents of a single row contains expected.
-
#assert_row_starts_with(row_number, expected) ⇒ Object
Asserts the contents of a single row start with expected.
Instance Method Details
#assert_contents(expected) ⇒ Object Also known as: assert_matches
Asserts the full contents of the terminal
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/ttytest/matchers.rb', line 88 def assert_contents(expected) expected_rows = expected.split("\n") diff = [] matched = true rows.each_with_index do |actual_row, index| expected_row = (expected_rows[index] || '').rstrip if actual_row != expected_row diff << "-#{expected_row}" diff << "+#{actual_row}" matched = false else diff << " #{actual_row}".rstrip end end return if matched raise MatchError, "screen did not match expected content:\n--- expected\n+++ actual\n#{diff.join("\n")}" end |
#assert_cursor_hidden ⇒ Object
79 80 81 82 83 |
# File 'lib/ttytest/matchers.rb', line 79 def assert_cursor_hidden return if cursor_hidden? raise MatchError, "expected cursor to be hidden was visible\nEntire screen:\n#{self}" end |
#assert_cursor_position(x, y) ⇒ Object
Asserts that the cursor is in the expected position
62 63 64 65 66 67 68 69 |
# File 'lib/ttytest/matchers.rb', line 62 def assert_cursor_position(x, y) expected = [x, y] actual = [cursor_x, cursor_y] return if actual == expected raise MatchError, "expected cursor to be at #{expected.inspect} but was at #{actual.inspect}\nEntire screen:\n#{self}" end |
#assert_cursor_visible ⇒ Object
72 73 74 75 76 |
# File 'lib/ttytest/matchers.rb', line 72 def assert_cursor_visible return if cursor_visible? raise MatchError, "expected cursor to be visible was hidden\nEntire screen:\n#{self}" end |
#assert_row(row_number, expected) ⇒ Object
Asserts the contents of a single row
10 11 12 13 14 15 16 17 |
# File 'lib/ttytest/matchers.rb', line 10 def assert_row(row_number, expected) expected = expected.rstrip actual = row(row_number) return if actual == expected raise MatchError, "expected row #{row_number} to be #{expected.inspect} but got #{actual.inspect}\nEntire screen:\n#{self}" end |
#assert_row_ends_with(row_number, expected) ⇒ Object
Asserts the contents of a single row end with expected
49 50 51 52 53 54 55 56 |
# File 'lib/ttytest/matchers.rb', line 49 def assert_row_ends_with(row_number, expected) expected = expected.rstrip actual = row(row_number) return if actual.end_with?(expected) raise MatchError, "expected row #{row_number} to end with #{expected.inspect} and got #{actual.inspect}\nEntire screen:\n#{self}" end |
#assert_row_like(row_number, expected) ⇒ Object
Asserts the contents of a single row contains expected
23 24 25 26 27 28 29 30 |
# File 'lib/ttytest/matchers.rb', line 23 def assert_row_like(row_number, expected) expected = expected.rstrip actual = row(row_number) return if actual.include?(expected) raise MatchError, "expected row #{row_number} to be like #{expected.inspect} but got #{actual.inspect}\nEntire screen:\n#{self}" end |
#assert_row_starts_with(row_number, expected) ⇒ Object
Asserts the contents of a single row start with expected
36 37 38 39 40 41 42 43 |
# File 'lib/ttytest/matchers.rb', line 36 def assert_row_starts_with(row_number, expected) expected = expected.rstrip actual = row(row_number) return if actual.start_with?(expected) raise MatchError, "expected row #{row_number} to start with #{expected.inspect} and got #{actual.inspect}\nEntire screen:\n#{self}" end |