require 'minitest' require 'minitest/autorun' require 'ttytest' class FzyTest < Minitest::Test FZY_PATH = File.expand_path('../../../fzy', __FILE__) 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.send_keys('t') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> t') @tty.assert_row(2, '') @tty.send_keys('z') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> tz') @tty.assert_row(2, '') end def test_one_item @tty = TTYtest.driver.new_terminal(%{echo placeholder;echo -n "test" | fzy}) @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '>') @tty.assert_row(2, 'test') @tty.assert_row(3, '') @tty.send_keys('t') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> t') @tty.assert_row(2, 'test') @tty.assert_row(3, '') @tty.send_keys('z') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> tz') @tty.assert_row(2, '') @tty.assert_row(3, '') end def test_two_items @tty = TTYtest.driver.new_terminal(%{echo placeholder;echo -n "test\nfoo" | fzy}) @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '>') @tty.assert_row(2, 'test') @tty.assert_row(3, 'foo') @tty.assert_row(4, '') @tty.send_keys('t') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> t') @tty.assert_row(2, 'test') @tty.assert_row(3, '') @tty.send_keys('z') @tty.assert_row(0, 'placeholder') @tty.assert_row(1, '> tz') @tty.assert_row(2, '') @tty.assert_row(3, '') end end