fzy
terminal fuzzy finder picker
git clone https://9o.is/git/fzy.git
commit 664a3689e4c2f5e61931e162537792216c856439 parent 429b333f5b9e77b81dbdec652f90006c117a2ad1 Author: John Hawthorn <john.hawthorn@gmail.com> Date: Wed, 28 Dec 2016 01:10:42 -0800 Expand on integration test Diffstat:
| M | test/integration/Gemfile.lock | | | 2 | +- |
| M | test/integration/integration_test.rb | | | 30 | ++++++++++++++++++++++++++++++ |
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/test/integration/Gemfile.lock b/test/integration/Gemfile.lock @@ -2,7 +2,7 @@ GEM remote: https://rubygems.org/ specs: minitest (5.10.1) - ttytest (0.1.0) + ttytest (0.2.0) PLATFORMS ruby diff --git a/test/integration/integration_test.rb b/test/integration/integration_test.rb @@ -5,21 +5,35 @@ require 'ttytest' class FzyTest < Minitest::Test FZY_PATH = File.expand_path('../../../fzy', __FILE__) + def setup + # fzy is fast. + # This is never hit in a (passing) test suite, but helps speed up development + TTYtest.default_max_wait_time = 0.2 + end + def test_empty_list @tty = TTYtest.driver.new_terminal(%{echo placeholder;echo -n "" | fzy}) @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '>') @tty.assert_row(2, '') + @tty.assert_cursor_position(y: 1, x: 2) @tty.send_keys('t') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> t') @tty.assert_row(2, '') + @tty.assert_cursor_position(y: 1, x: 3) @tty.send_keys('z') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> tz') @tty.assert_row(2, '') + @tty.assert_cursor_position(y: 1, x: 4) + + @tty.send_keys("\r") + @tty.assert_row(0, 'placeholder') + @tty.assert_row(1, 'tz') + @tty.assert_cursor_position(y: 2, x: 0) end def test_one_item @@ -28,18 +42,26 @@ class FzyTest < Minitest::Test @tty.assert_row(1, '>') @tty.assert_row(2, 'test') @tty.assert_row(3, '') + @tty.assert_cursor_position(y: 1, x: 2) @tty.send_keys('t') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> t') @tty.assert_row(2, 'test') @tty.assert_row(3, '') + @tty.assert_cursor_position(y: 1, x: 3) @tty.send_keys('z') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> tz') @tty.assert_row(2, '') @tty.assert_row(3, '') + @tty.assert_cursor_position(y: 1, x: 4) + + @tty.send_keys("\r") + @tty.assert_row(0, 'placeholder') + @tty.assert_row(1, 'tz') + @tty.assert_cursor_position(y: 2, x: 0) end def test_two_items @@ -49,17 +71,25 @@ class FzyTest < Minitest::Test @tty.assert_row(2, 'test') @tty.assert_row(3, 'foo') @tty.assert_row(4, '') + @tty.assert_cursor_position(y: 1, x: 2) @tty.send_keys('t') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> t') @tty.assert_row(2, 'test') @tty.assert_row(3, '') + @tty.assert_cursor_position(y: 1, x: 3) @tty.send_keys('z') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> tz') @tty.assert_row(2, '') @tty.assert_row(3, '') + @tty.assert_cursor_position(y: 1, x: 4) + + @tty.send_keys("\r") + @tty.assert_row(0, 'placeholder') + @tty.assert_row(1, 'tz') + @tty.assert_cursor_position(y: 2, x: 0) end end